如何使用shell脚本从XML中搜索和显示值

时间:2017-08-09 15:05:40

标签: xml shell

假设XML文件spam.xml与

类似
<spam>
<victims>
  <victim>
    <name>The Pope</name>
    <email>pope@vatican.gob.va</email>
    <is_satan>0</is_satan>
  </victim>
  <victim>
    <name>George Bush</name>
    <email>father@nwo.com</email>
    <is_satan>1</is_satan>
  </victim>
  <victim>
    <name>George Bush Jr</name>
    <email>son@nwo.com</email>
    <is_satan>0</is_satan>
  </victim>
</victims>
</spam>

如何从shell脚本中查找并显示George Bush Jr的电子邮件地址。

使用像xmllint或xml2这样的工具将受到赞赏,但不是必需的。

编辑:对不起,我猜我不知道这个问题是否足够明确。我知道我可以运行像

这样的东西
$ xmllint --xpath '//spam/victims/victim/name' spam.xml
<name>ThePope</name><name>George Bush</name><name>George Bush Jr</name>

但那不是我追求的。我想搜索名称并返回了电子邮件。也许这是不可能的,也许我必须编写一个扩展的sed / awk / bash脚本来执行此操作。我希望围绕XML的所有宣传都有一种聪明而简单的方法,但也许不是。我不熟悉XML,这就是我问的原因:)

0 个答案:

没有答案