Abrufen mehrerer Werte mit xmllint
Möchte ich die xpath-von xmllint zu Holen, können Sie einen Rechnernamen und eine Seriennummer.
Hier ist die XML -
<hosts>
<host name="blah001" serial="ABC001">
<moreinfo />
</host>
<host name="blah002" serial="ABC002">
<moreinfo />
</host>
..
</hosts>
Kann ich abrufen alle Serien mit host-Namen bla*:
/> cat //hosts/host[starts-with(@name,"blah")]/@serial
-------
serial="ABC001"
-------
serial="ABC002"
Aber ich möchte auch sehen, was hostname hatte, dass die Serien. Ist das möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht würde es reichen, wählen Sie einfach alle Attribute des
host
element?Wenn das nicht genug ist - wenn die Ausgabe strukturiert sein sollte, in einer gewissen Weise, ich würd dir empfehlen das schreiben einer einfachen XSLT-transformation oder XQuery verwenden.
BEARBEITEN
Gut, falls Sie sich entscheiden für das XSLT-stylesheet, die Sie brauchen würde ähnlich Aussehen:
XSLT-Stylesheet (1.0)
Ausgabe
Diese kann getan werden, xmllint mit folgenden XPath-Ausdruck.
Lassen Sie angenommen, Ihre XML-Namen hosts.xml.
Dies ist, weil der | - operator in einem XPath-Ausdruck kann Unterstützung für mehrere Pfade.