XPath 中运算符的优先级是什么?
What is the precedence among operators in XPath?
在此 XPath 表达式中://div[@id=”myID”]|p
,//
运算符是否应用于联合运算符的两侧?或者这个表达式只是 return 文档中具有 id
属性值 myID
的所有 div
元素和作为上下文子元素的所有 p
元素节点?
是否有 XPath 运算符绑定和关联性的参考?
XPath 运算符顺序优先级
XPath EBNF grammar 意味着运算符之间的以下优先级(从最低到最高):
来源: XML Path Language (XPath) 2.0 (Second Edition)
(另请参阅:XML Path Language (XPath) 3.0)
由于 //
和 []
的优先级高于 |
(并集),因此您的 XPath 表达式
//div[@id=”myID”]|p
说
- select 文档中具有
@id
属性值的所有 div
元素
等于 myID
,
- 和 select 所有
p
上下文元素的子元素,
- 并取这两组元素的并集
产生最终结果(如您在第二个解释中预期的那样)。
在此 XPath 表达式中://div[@id=”myID”]|p
,//
运算符是否应用于联合运算符的两侧?或者这个表达式只是 return 文档中具有 id
属性值 myID
的所有 div
元素和作为上下文子元素的所有 p
元素节点?
是否有 XPath 运算符绑定和关联性的参考?
XPath 运算符顺序优先级
XPath EBNF grammar 意味着运算符之间的以下优先级(从最低到最高):
来源: XML Path Language (XPath) 2.0 (Second Edition)
(另请参阅:XML Path Language (XPath) 3.0)
由于 //
和 []
的优先级高于 |
(并集),因此您的 XPath 表达式
//div[@id=”myID”]|p
说
- select 文档中具有
@id
属性值的所有div
元素 等于myID
, - 和 select 所有
p
上下文元素的子元素, - 并取这两组元素的并集
产生最终结果(如您在第二个解释中预期的那样)。