解析xml文件中的下一个次级类别

时间:2016-07-12 14:22:09

标签: xml linux bash shell xml-parsing

我有一个名为test.xml的xml文件。

<deathList>
<victimGroupA>
  <person1>
    <name>The Pope</name>
    <email>pope@vatican.gob.va</email>
    <is_satan>0</is_satan>
  </person1>
  <person2>
    <name>George Bush</name>
    <email>father@nwo.com</email>
    <is_satan>1</is_satan>
   </person2>
  <person3>
    <name>George Bush Jr</name>
    <email>son@nwo.com</email>
    <is_satan>0</is_satan>
  </person3>
</victimGroupA>
<victimGroupB>
  <person1>
    <name>bob</name>
    <email>bob@bobby.com</email>
    <is_satan>0</is_satan>
  </person1>
  <person2>
    <name>mike</name>
    <email>mike@michael.com</email>
    <is_satan>0</is_satan>
  </person2>
</victimGroupB>
<victimGroupC>
  <person1>
    <name>kenny</name>
    <email>kenny@youkilledkenny.com</email>
    <is_satan>0</is_satan>
  </person1>
</victimGroupC>
</deathList>

我想写一个bashrc脚本,试图回应以下内容:

victimGroupA
person1
person2
person3
victimGroupB
person1
person2
victimGroupC
person1

基本上它应该检测所有victimGroup *并打印出所有下一个sublevel类别。这是最简单的方法吗?我需要它与centos和ubuntu兼容。

1 个答案:

答案 0 :(得分:1)

你可以试试这个;

egrep'victim | person'test.xml | grep -v / | sed -e's / \(&lt; \)\ | \(&gt; \)\ | \(\)// g'