Extrahieren von Daten aus xml-Datei mit xmllint
Ich habe ein kleines xml - Dokument, aus dem ich brauche, um daraus einige Werte mit xmllint. Ich bin in der Lage, die Navigation durch die xml-Hierarchie mit xmllint --shell xmlfilename
Befehl.
Aber ich bin nicht in der Lage zum extrahieren der Werte. Ich will nicht von einem grep /
alle pattern-matching-Befehl, wie das bereits getan wird und ist ein Erfolg.
Ich wäre dankbar jede Hilfe über die xmlliint.
Hier ist mein Dokument in png
- format. Ich möchte zum extrahieren der 300$
und 500$
(die value
).
<?xml version="1`.`0" encoding="ISO-8859-1"?>
<adi>
<asset>
<electronics item="Mobile" name="Nokia" value="300$" />
<electronics item="Mobile" name="Sony" value="500$" />
</asset>
</adi>
Anderen Zweifel ist, sind die zwei Sätze, die unterschiedliche Darstellung der gleichen xml ?
<?xml version="1.0 encoding="ISO-8859-1"?>
<adi>
<asset>
<electronics>
<item> Mobile </item>
<name>Nokia</name>
<value>300$</value>
</electronics>
<electronics>
<item> Mobile </item>
<name>Sony</name>
<value>500$</value>
</electronics>
</asset>
</adi>
- Blick auf xmlstarlet für diese Art von Aufgabe. Oder beachten Sie die unteren follwer zählt auf Ihre tags (beim rollover) und fügen Sie einen tag für die xml-oder xmlstarlet. Viel Glück.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Hinblick auf Ihre zweite Frage, diese beiden snippets tun nicht vertreten die gleichen XML-Inhalt. Attribute und untergeordneten Elemente nicht gleichwertig sind. Ein Kind-element das root-element von einem beliebigen XML-Baum, aber Attribute sind atomar.
E. g., Ich konnte ändern Sie die zweite snippet wie dieses:
wo ich Hinzugefügt haben
<sub-item>Phone</sub-item>
zu den ersten<item>
element.Jedoch gibt es keine gleichwertige, wenn
item
ist stattdessen ein Attribut, wie in der ersten snippet.Spät, aber während der Recherchen für den tag xmllint match der ersten Seite, ich Antworte dir jetzt 😉
verwenden --xpath-statt --xpath-wie unten
"
auf die erste Zeile.