gewusst wie: Lesen von xml-Datei in linux

Ich habe eine xml-Datei, wie unten, muss ich "de" mit einigen unix-Befehl.

        <void method="put">
            <string>LANGUAGE</string>
            <string>en</string>
        </void>    

mit nachstehenden Befehl (habe von einigen link in google),

sed -n '/string/{s/.*<string>//;s/<\/string.*//;p;}' Locale.xml

Erhalte ich die Ausgabe als

LANGUAGE
en

so habe ich

sed -n '/string/{s/.*<string>//;s/<\/string.*//;p;}' Locale.xml | tail -1

Aber es ist eine option in der sed, durch die ich bekommen kann zweiten Wert nur???

  • Mit einem XML-parser eine bessere option sein könnte.
  • genau der Anwendungsfall für xpath. wenn Sie brauchen, um wickeln Sie es mit einem shell-Skript, können Sie das tool xmllint mit --xpath. Kann ich nicht weiter empfehlen, bevor man Ihre Dokument-Struktur. Versuchen Sie nicht, zu verwenden, awk/sed/grep auf ein xml, wenn Sie wollen, dass Ihr script stabil zu sein. auch Sie verwenden konnte, diese aber für eine quick-and-dirty-shot/test.
  • XML ist keine reguläre Sprache, was bedeutet, dass Sie nicht passen Ihre Strukturen mit regulären Ausdrücken effektiv.
  • Siehe Grep und Sed Äquivalent für XML-Verarbeitung über die Befehlszeile
InformationsquelleAutor user2800089 | 2014-04-28
Schreibe einen Kommentar