Xpath 获取具有至少一个属性的所有元素

Posted

技术标签:

【中文标题】Xpath 获取具有至少一个属性的所有元素【英文标题】:Xpath to get all elements with at least one attribute 【发布时间】:2018-05-27 17:01:57 【问题描述】:

我正在使用 xpath、xml 和 xsl,所以在我的项目中,我需要找到至少具有一个属性的所有元素。例如,如果我有这个 xml 内容:

<catalog>
<show>
  <titulo>so so</titulo>
  <ano>1991</ano>
</show>
<sound id="1">some string song</sound>

结果我希望只有声音节点。

我已经尝试过这个 xpath

count(@*) > 0

string-lenght(@*) > 0

但到目前为止,这些都没有解决问题。

【问题讨论】:

【参考方案1】:

试试这个

//*[@*]

使用来自示例输入的 XML 测试 https://www.freeformatter.com/xpath-tester.html#ad-output 您的代码也会按照您的预期进行处理。

【讨论】:

【参考方案2】:

请试试这个

//*[count(@*) > 0]/node()

//*[count(@*) > 0]/text()

【讨论】:

以上是关于Xpath 获取具有至少一个属性的所有元素的主要内容,如果未能解决你的问题,请参考以下文章

如何在具有 xmlns 属性的 xml 中使用 xpath 获取特定的嵌套元素? [复制]

Xpath:选择除具有特定属性的元素之外的所有元素

使用xpath提取页面所有a标签的href属性值

具有特定值的任何属性的所有元素的 XPath?

XPath 获取除具有特定名称的子元素之外的所有子元素?

css 或 xpath 选择器:具有特定值的任何属性的元素