XPath表达意义

Pat*_*eiß 2 xml xpath

我是XPath的新手,希望您考虑以下表达式,其中n是一个元素:

//n[parent::n and child::n]

表达式是否表示 [ ]父节点和子节点n必须相同?

或者我完全错了?谢谢.

Mat*_*ler 6

[]中的表达式是否表示n的父节点和子节点必须相同?

你陈述的正确性取决于你所说的"相同".如果"相同",则表示"相同",则该陈述显然是不正确的.节点不能同时是某个节点的父节点和子节点.

另一方面,如果你打算写"具有相同的名字",那么这是真的.表达方式

//n[parent::n and child::n]
Run Code Online (Sandbox Code Playgroud)

手段

n在文档中的任何位置查找具有名称的所有元素,但前提是它们的父元素也被调用n,并且它们至少有一个子元素被调用n.

  • @PatrickWeiß两者都不是.XPath表达式是隐式存在量化的,这意味着像`ancestor :: n`这样的表达式总是意味着:"必须至少**一个具有此名称的**祖先".它不一定适用于所有祖先,具有此名称的祖先不一定是最外层(根)元素. (3认同)
  • 是的,所以如果XPath应用于只有`n`元素的文档,它将选择除了*和root元素之外的所有元素*. (2认同)