-1

我正在阅读一个项目的规范/文档,它说:

您可以关注以下 XPath 片段: p::= A | * | p/p | p//p | p[q]

p :: = A是什么意思?

4

2 回答 2

3

我认为它得到的是在这种情况下指定 XPath 的一个子集。

p ::= ...

就是BNF,要说p是由下面的语法定义的。

我假设A并且q定义类似,尽管您没有给出上下文。我猜A是一个元素名称,并且q是一个布尔表达式(但是它是定义的)。

可以说支持的 XPath 子集如下:

  • 元素名称 ( A)
  • *
  • p/p用 / 运算符 ( )连接的两个表达式
  • 用 // 运算符 ( p//p)连接的两个表达式
  • 带有受支持谓词 ( p[q])的表达式
于 2013-03-25T14:06:00.210 回答
1

提供的表达式

A | * | p/p | p//p | p[q]

是由各个子表达式选择的节点的并集。

它选择任何命名A的子元素加上任何子元素加上作为当前(初始上下文)节点的子元素的子元素p的子元素,以及作为当前(初始上下文)节点的子元素的后代的任何元素节点,加上任何有子节点的子节点(当前节点的)。ppppq

它相当于较短的

 * | p//p

问的具体问题

是什么意思p :: = A

XPath 表达式

A

选择当前节点的所有名为 的子元素A

于 2013-03-24T03:59:56.620 回答