xml Datei auf der Kommandozeile zerlegen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

xml Datei auf der Kommandozeile zerlegen

Beitrag von chr.gogolin » 25.08.2010 15:10:02

Hallo, ich möchte auf der Kommandozeile eine xml Datei auf eine gewisse Art zerlegen. Ich bräuchte sowas wie sed oder awk nur für xml Dateien nur bin ich scheinbar nicht kreativ genug um die richtigen Schlagwörter für eine Suche zu finden.

Das Problem ist das folgende:
Ich habe ein Datei der Art

Code: Alles auswählen

[...header...] 
<category title="foo">
[...inhalt...]
<category>
</category title="bar" >
[...inhalt...]
</category>
[...noch mehr <cathegory>s...]
</category title="foobar" >
[...inhalt...]
</category>
[...footer...]
welche ich in Dateien foo.xml, bar.xml ... foobar.xml zerlegen möchte welche jeweils den header, den footer und dazwischen ausschließlich die jeweilige <category>...</category> enthalten.

Mit welchen Tool mache ich das am besten?

Vielen Dank!
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: xml Datei auf der Kommandozeile zerlegen

Beitrag von gbotti » 25.08.2010 15:22:45

Hi.
Ich würd das mit ner foreach-Schleife in nem bash-script machen...

Code: Alles auswählen

for i in $(cat XMLFILE.XML); do
     case $i in
     *header*) OUTFILE=foo.xml;;
esac
done
Es ist leider nicht klar ersichtlich, wie Du die Datei abarbeiten möchtest.

Gruß
Georg
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: xml Datei auf der Kommandozeile zerlegen

Beitrag von rendegast » 25.08.2010 16:29:14

mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: xml Datei auf der Kommandozeile zerlegen

Beitrag von chr.gogolin » 29.08.2010 15:23:42

Danke.xmlstarlet schien für mein Problem irgendwie doch keine elegante Lösung zu haben.Ich habe das Problem dann mit einer

Code: Alles auswählen

awk "/<category *title=\"${ncategory[0]}\">/,/<\/category>/ { next } ...
Konstruktion gelöst.
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

Antworten