我正在阅读一个项目的规范/文档,它说:
您可以关注以下 XPath 片段: p::= A | * | p/p | p//p | p[q]
p :: = A是什么意思?
我认为它得到的是在这种情况下指定 XPath 的一个子集。
p ::= ...
就是BNF,要说p
是由下面的语法定义的。
我假设A
并且q
定义类似,尽管您没有给出上下文。我猜A
是一个元素名称,并且q
是一个布尔表达式(但是它是定义的)。
可以说支持的 XPath 子集如下:
A
)*
p/p
用 / 运算符 ( )连接的两个表达式p//p
)连接的两个表达式p[q]
)的表达式提供的表达式:
A | * | p/p | p//p | p[q]
是由各个子表达式选择的节点的并集。
它选择任何命名A
的子元素加上任何子元素加上作为当前(初始上下文)节点的子元素的子元素p
的子元素,以及作为当前(初始上下文)节点的子元素的后代的任何元素节点,加上任何有子节点的子节点(当前节点的)。p
p
p
p
q
它相当于较短的:
* | p//p
问的具体问题:
是什么意思
p :: = A
?
XPath 表达式
A
选择当前节点的所有名为 的子元素A
。