简单的JavaScript XPath语法模式验证器(无上下文)



我有一个文本字段,用户可以在其中键入XPath。我只是在寻找一种简单的方法来验证 XPath 模式,以便它是 XML 的验证模式。

我没有任何 XSD 要检查或任何东西,所以我猜一个简单的正则表达式就足够了。但我真的不知道 XPath 的所有细节以及什么是允许的,什么是不允许的。

试图环顾网络,但只找到XPath到XSD/XML文件验证器。

编辑:我不想知道/知道上下文是什么,我只想验证合成器。简而言之,我正在寻找一种XPathExpression.Compile(String)方法。

查看 Wicked Good XPath:一个更快的 JavaScript XPath 库。

这将实现 document.evaluate(),如果给定无效的 XPath,它将抛出 XPathException。 还有一个createExpression()函数,如果你实际上还不必在文档上评估XPath,你可能更喜欢它。

(您确实不想使用正则表达式来分析 XPath。

客户端对 XSLT/XPath 的支持非常不一致(它们都以某种方式支持它,但有很多差异)。

如果我是你,我肯定会把它转移到服务器端的Web服务中。例如,在 PHP 中,您可以使用 Simple XML 或 DOMDocument 类来运行 - 从而检查 XPath 表达式的有效性。

使用其中任何一个与任意标记,您可以测试 XPath 是否有效(或者更准确地说,PHP 库是否认为它是有效的)。

$xpath = "foo/bar@"; //<-- invalid XPath
$sxe = new SimpleXMLElement("<foo />");
die(@$sxe->xpath('valid@') ? 'valid' : 'invalid');

。输出"有效"或"无效",AJAX 调用(将调用 Web 服务)可以查找这些输出。