我有一个文本字段,用户可以在其中键入XPath。 我只是在寻找一种简单的方法来验证XPath模式,以便它是XML的验证模式。
我没有任何XSD可以检查或任何东西,所以我猜一个简单的正则表达式就足够了。 但我真的不知道XPath的具体内容以及允许的内容和不允许的内容。
试图环顾网络,但只找到XPath到XSD / XML文件验证器。
编辑:我不想/知道上下文是什么,我只想验证synthax。
简而言之,我正在寻找XPathExpression.Compile(String)
方法。
答案 0 :(得分:3)
查看Wicked Good XPath: a faster JavaScript XPath library。
这将实现document.evaluate(),如果给出无效的XPath,它将抛出XPathException。还有一个createExpression()函数,如果您实际上还不需要在文档上评估XPath,那么您可能更喜欢它。
(你真的不想使用正则表达式来解析XPath。)
答案 1 :(得分:0)
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服务)可以查找。