2013-03-24 50 views
-1

林正在读规格的项目/文件和它说:以下XPath片段的含义是什么?

你可能集中在以下XPath片段: P :: = A | * | p/p | p // p | p [q]

什么意思是p :: = A

+2

':: ='在XPath中没有任何意义。也许作者试图给一个XPath片段命名? – 2013-03-24 09:50:20

+0

无论如何,“XPath片段”应该是什么意思?我从未见过这句话。也许:“一个XPath(子)表达式”? – 2013-03-24 16:05:27

回答

3

我认为它所指的是在这种情况下支持XPath的一个子集。

p ::= ... 

是BNF说p由以下语法定义。

我假设Aq的定义类似,虽然你没有给出上下文。我猜A是一个元素名称,而q是一个布尔表达式(不过这是定义的)。

这mearly说的XPath支持的子集如下:

  • 元素(A
  • *
  • 两个表达式加入了与/运算符(p/p
  • 的名称
  • 使用//运算符连接的两个表情(p//p
  • 使用受支持的谓词的表达式(p[q]
+1

[BNF](http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form)记录。 – MattH 2013-03-25 14:28:29

1

所提供的表达

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

工会由各个子表达式中选择的节点的

它选择命名A任何子元素加上任何子元素加上任何p元件是一个p元件,它是当前(初始上下文)的子节点的子节点,以及任何p元件,其的后代p元素是当前节点的子元素,加上具有q子元素的(当前节点的)任何p子元素。

它相当于短

* | p//p 

的具体问题,问

什么是p :: = A意思?

XPath表达式

A 

选择被命名A当前节点的所有子元素。