Xpath只选择子元素存在的节点?

Kev*_*uli 14 xpath

这应该是一个简单的,但它给我带来了麻烦.鉴于这种结构:

<root>
  <a>
    <b/>
  </a>
  <a/>
</root>
Run Code Online (Sandbox Code Playgroud)

我正在尝试制定一个xpath表达式,它只给出非空的"a"元素,即具有子元素的元素.因此我希望返回"a"的第一个实例,而不是第二个实例.

到目前为止,我有"/ root/a/self ::*",但这又回到了我的两个.

Mes*_*esh 14

/root/a[count(*)&gt;0]
Run Code Online (Sandbox Code Playgroud)

将为任何'a'节点提供任何类型的子节点

  • 作为额外的一点,您可以使用count(b)来确定要计算的子节点. (5认同)

Tor*_*rek 8

/root/a[count(*)>0]
Run Code Online (Sandbox Code Playgroud)

  • 仅当您想将其放入XML文件(例如XSLT脚本)时.不过,这只是一个存储细节,我很确定XPath规范使用">":) (3认同)

小智 5

这个作品

/root/a[*]
Run Code Online (Sandbox Code Playgroud)

甚至

//a[*]
Run Code Online (Sandbox Code Playgroud)

  • 或者,如果您只关心名称为“b”的子元素:`/root/a[b]` (2认同)