拥有XPath如何检查它是否会尝试匹配元素或属性
本文关键字:属性 元素 是否 何检查 XPath 检查 拥有 | 更新日期: 2023-09-27 18:00:45
我真正需要的是一种方法,用于识别XPath 2.0表达式是否引用了元素或属性。
假设一个方法具有以下原型:
XPathResultType IdentifyXPathResultType (string xpath)
对于等输入
//Parent[@id='1']/Children/child[@name]
该方法应该返回类似的内容
XPathResultType.Element
对于等输入
//Parent[@id='1']/Children/child/@name
该方法应该返回类似的内容
XPathResultType.Attribute
上面的例子实现起来很简单,但是XPath 2.0有很多特性,需要实现一个智能解析器
在Javascript中有没有任何库或设施可以完成这样的事情?
我真的需要这个用于Javascript的客户端。
还有C#中的解决方案。NET是可以接受的
instance of
运算符。这样你就可以测试之类的东西
//Parent[@id='1']/Children/child/@name instance of attribute()
在这种情况下将产生CCD_ 2。根据您使用的XPath解析器,您可能能够定义自己的函数,然后可以测试不同的元素类型并返回适当的响应项。
如果没有,您还可以多次运行XPath,每次都针对不同的数据类型进行测试。然而,这听起来不太理想,所以首选第一个选项。
如果您使用Saxon作为XPath解析器,那么在解析表达式后,您将能够深入到expression对象,该对象具有getItemType()方法,提供您要查找的信息。详细信息取决于您运行的平台。