1

因此,我之前使用 XPath 从 XML 表中获取数据并将其打印出来,以便

属性 1 - 属性 2 - 属性 3

是这样显示的。现在,我想在 Linux Bash 中做同样的事情。我知道如何使用 Linux Bash,并且能够将其中的一些打印出来,但不像我需要的那样。

这是 XML 工作表外观的示例

<xml>
<content>
<items>
<item>
<name>I need this information</name>
<item>

<lists>
<list>
<name>I DONT need this information</name>
</list>

<hello>
<name> I need this information also</name>
<hello>

请注意,我有三个 name 实例,所以我不能简单地使用 cat xmlfile | grep "name" 因为不止一个地方有名字

谢谢!

4

1 回答 1

3

使用XMLStarlet将查询作为 XPath 执行。

xmlstarlet sel -t \
  -m //item/name  -v . \  # print first item name
  -o ' - ' \              # print intermediate dash
  -m //hello/name -v . \  # print second item
  -n                      # print trailing newline

此外,一些非常新的版本xmllint有一个--xpath可用于运行查询的参数。

于 2012-07-20T18:22:46.473 回答