xml - XPath 能否仅返回具有 X 的子节点的节点?

标签 xml xslt xpath

是否可以使用 XPath 仅选择具有特定子元素的节点?例如,从这个 XML 中,我只想要 pets 中具有“bar”子元素的元素。因此生成的数据集将包含 lizardpig此示例中的元素:

<pets>
  <cat>
    <foo>don't care about this</foo>
  </cat>
  <dog>
   <foo>not this one either</foo>
  </dog>
  <lizard>
   <bar>lizard should be returned, because it has a child of bar</bar>
  </lizard>
  <pig>
   <bar>return pig, too</bar>
  </pig>
</pets>

这个 Xpath 给了我所有的宠物:"/pets/*" , 但我只想要有一个名为 'bar' 的子节点的宠物.

最佳答案

这就是它的全部荣耀

/pets/*[bar]

英语:给我 pets 的所有 child bar

关于xml - XPath 能否仅返回具有 X 的子节点的节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/105613/

相关文章:

android - RippleDrawable 不能用作 ViewGroup 的可绘制对象

xml - XSLT 嵌套排序/for-each

javascript - 在搜索兄弟时使用 CSS 选择器而不是 XPath 定位器

html - 使用 XSLT 设置 HTML5 文档类型

python - 如何从 lxml 错误中获取更多信息?

xpath - 相当于 SQL In 查询的 XPath 是什么?

XPath:将函数应用于所有匹配项?

xml - "bad practice"对XML文档中的换行敏感吗?

xml - 我可以设置 XSD 以便 xs :enumeration is shared between two attributes with a different base type - xs:ID and xs:string

php - 在 PHP 中使用 Xpath 解析 XML