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 上下文元素的子元素,
  • 并取这两组元素的并集

产生最终结果(如您在第二个解释中预期的那样)。