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

时间:2014-04-08 18:39:48

标签: javascript xml regex xpath

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

我没有任何XSD可以检查或任何东西,所以我猜一个简单的正则表达式就足够了。 但我真的不知道XPath的具体内容以及允许的内容和不允许的内容。

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

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

2 个答案:

答案 0 :(得分:3)

查看Wicked Good XPath: a faster JavaScript XPath library

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

(你真的不想使用正则表达式来解析XPath。)

答案 1 :(得分:0)

XSLT / XPath的客户端支持非常不一致(它们都支持它,但存在很多差异)。

如果我是你,我肯定会把它培养成服务器端的Web服务。例如,在PHP中,您可以使用Simple XMLDOMDocument类来运行 - 因此,检查 - XPath表达式的有效性。

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

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

...输出“有效”或“无效”,您的AJAX调用(可以调用Web服务)可以查找。