2016-07-12 2 views
0

Ich habe eine XML-Datei namens test.xml.Parsing nur die nächste Sublevel-Kategorie in einer XML-Datei

<deathList> 
<victimGroupA> 
    <person1> 
    <name>The Pope</name> 
    <email>[email protected]</email> 
    <is_satan>0</is_satan> 
    </person1> 
    <person2> 
    <name>George Bush</name> 
    <email>[email protected]</email> 
    <is_satan>1</is_satan> 
    </person2> 
    <person3> 
    <name>George Bush Jr</name> 
    <email>[email protected]</email> 
    <is_satan>0</is_satan> 
    </person3> 
</victimGroupA> 
<victimGroupB> 
    <person1> 
    <name>bob</name> 
    <email>[email protected]</email> 
    <is_satan>0</is_satan> 
    </person1> 
    <person2> 
    <name>mike</name> 
    <email>[email protected]</email> 
    <is_satan>0</is_satan> 
    </person2> 
</victimGroupB> 
<victimGroupC> 
    <person1> 
    <name>kenny</name> 
    <email>[email protected]</email> 
    <is_satan>0</is_satan> 
    </person1> 
</victimGroupC> 
</deathList> 

Ich möchte ein bashrc Skript schreiben, das die folgenden Echo wird versuchen:

victimGroupA 
person1 
person2 
person3 
victimGroupB 
person1 
person2 
victimGroupC 
person1 

Grundsätzlich sollte es erkennen alle victimGroup * und ausdrucken alle nächsten sublevel Kategorien davon. Was ist der einfachste Weg, dies zu tun? Ich brauche es kompatibel mit Centos und Ubuntu.

+0

Ich habe nur einige seiner XML-Werte für einen Test verwendet, den ich ausführen möchte. Aber ich weiß immer noch nicht, wie ich die "Unterkategorie" der XML-Datei erfassen soll. – daemoner119

+0

müssen Sie es in Shell-Skript tun, oder Sie sind bereit, etwas Code zu schreiben ... –

+0

Sobald Sie ein vernünftiges Verständnis von XPath haben, ist dies definitiv nicht mehr eine [tag: bash] -Frage, und versuchen, regex oder zu verwenden Andere Shell-Skript-Ansätze zum Parsen von XML werden einfach fehlgeleitet, wie es bereits unzählige Male gezeigt wurde. – tripleee

Antwort

1

Sie können dies versuchen;

egrep 'Opfer | Person' test.xml | grep -v/| sed -e 's/\ (< \) \ | \ (> \) \ | \ (\) // g'

Verwandte Themen