我正在阅读一个项目的规范/文档,它说:
您可以关注以下 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的子元素,以及作为当前(初始上下文)节点的子元素的后代的任何元素节点,加上任何有子节点的子节点(当前节点的)。ppppq
它相当于较短的:
* | p//p
问的具体问题:
是什么意思
p :: = A?
XPath 表达式
A
选择当前节点的所有名为 的子元素A。