XPath中运算符的优先级是什么?

时间:2016-04-24 22:09:27

标签: xml xpath operator-precedence associativity

在这个XPath表达式中//div[@id=”myID”]|p//运算符是否应用于union运算符的两边?或者,此表达式是否只返回文档中div属性值为id的所有myID元素以及作为上下文节点子元素的所有p元素?

是否有对XPath运算符绑定和关联性的引用?

1 个答案:

答案 0 :(得分:4)

XPath操作员订单优先顺序

XPath EBNF grammar表示运算符之间具有以下优先级(从最低到最高):

enter image description here

来源XML Path Language (XPath) 2.0 (Second Edition)

(另见:XML Path Language (XPath) 3.0

由于//[]的优先级高于|(union),因此您的XPath表达式

//div[@id=”myID”]|p

  • 使用div属性值选择文档中的所有@id元素 等于myID
  • 并选择所有p元素作为上下文元素的子元素
  • 并采用这两组元素的联合

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