2013-06-14 7 views
7

Ich habe die folgende XMLxmlstarlet sel Ausgangs neue Linie zwischen den Werten

<process id="test"> 

</process> 
<process id="test2"> 

</process> 

ich tun, um die richtigen Werte aus den Attributen, aber ich möchte haben sie durch eine neue Linie für die weitere Verarbeitung getrennt auf.

Wenn die

xmlstarlet sel -t -v "count(process/@id" "example.xml)" 

Befehl ich die beiden getrennt werden sehen können, weil es 2

Der Befehl zurückgibt, verwendet, um die Attribute abzurufen ist die folgende

xmlstarlet sel -t -v "process/@id" "example.xml" 

Frage :

Kann die Ausgabe mit einer neuen Zeile für jedes Attribut zurückgegeben werden? Wenn nicht mit xmllint getan werden könnte?

Antwort

10

Ich war für 2 Tage in diesem suchen und ich fand die folgende Seite:

http://www.geekfarm.org/wu/muse/XmlStarlet.html

Das ist mir viel zu klären

ich den folgenden Befehl verwendet haben, die Zeilenumbrüche

zu erreichen
xmlstarlet sel -t -m "process" -n -v "@id" "example.xml" 
+1

Um Zeilenumbrüche mit dem Flag '-n' zu erhalten, ist die Option '-m' erforderlich. I.e. Wenn Sie den Ausdruck "sel -t -c" "-n etwas.xml" verwenden, verwenden Sie stattdessen den Ausdruck "sel -t -m" "-c". " -n etwas.xml'. – phobic