我正在阅读项目的规范/文档,并说:
您可以关注以下XPath片段: p :: = A | * | p / p | p // p | p [q]
p :: = A 的含义是什么?
答案 0 :(得分:3)
我认为它的目的是在此上下文中支持指定XPath的子集。
p ::= ...
是BNF,说p
由以下语法定义。
我假设A
和q
的定义相似,但您没有给出上下文。我猜A
是一个元素名称,q
是一个布尔表达式(但是已定义)。
很明显,支持的XPath子集如下:
A
)*
p/p
)p//p
)p[q]
)答案 1 :(得分:1)
提供的表达:
A | * | p/p | p//p | p[q]
是由各个子表达式选择的节点的 union 。
它选择任何名为A
的子元素加上任何子元素加上任何p
元素,该元素是p
元素的子元素,它是当前(初始上下文)节点的子元素,加上作为当前节点的子元素的p
元素的后代的任何p
元素,加上具有{{1的p
子元素(当前节点的子元素)孩子。
相当于较短的:
q
提出的具体问题:
* | p//p
是什么意思?
XPath表达式
p :: = A
选择当前节点中名为A
的所有子元素。