GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux Bash XMLLINT mit XPATH

Mein Favorit ist xmlstarlet, weil es leistungsfähiger zu sein scheint als xmllint:

xmlstarlet sel -t -v '/resources/item[@id="index.php"]/description/text()' en.xml

wie man am besten auf ein bestimmtes Element abzielt und dann einen Drilldown zu seinem untergeordneten Element durchführt

Der richtige XPath-Ausdruck dafür ist:

/resources/item[@id="index.php"]/description/text()

Im Klartext:Beginnen Sie beim Dokumentknoten, bis zum Dokumentelement resources , auf sein Kind item , aber nur wenn der Wert von id Attribut ist "index.php", auf seinem Kind description und seinen Textwert abrufen.

Ich verwende xmllint, um XML-Dokumente zu validieren, aber niemals für Pfadausdrücke. In einer Bash-Shell (zumindest unter Mac OS) gibt es ein noch einfacheres Tool zum Auswerten von XPath-Ausdrücken namens "xpath":

$ xpath en.xml '/resources/item[@id="index.php"]/description/text()'

Dann wird das folgende Ergebnis erhalten:

Found 1 nodes:
-- NODE --
DESCRIPTION

Wenn Sie immer noch xmllint bevorzugen, verwenden Sie es wie folgt:

$ xmllint --xpath '/resources/item[@id="index.php"]/description/text()' en.xml > result.txt

Standardmäßig --xpath impliziert --noout , wodurch verhindert wird, dass xmllint die XML-Eingabedatei ausgibt. Um die Ausgabe besser lesbar zu machen, leite ich die Ausgabe in eine Datei um.

$ cat result.txt 
DESCRIPTION

Linux
  1. Analysieren des Bash-Verlaufs unter Linux

  2. Verwenden von Wortmodifikatoren mit Bash-Verlauf in Linux

  3. JQ-Befehl in Linux mit Beispielen

  4. Bash -c mit Positionsparametern?

  5. Löschen Sie das eingegebene Passwort in der versteckten Passwortabfrage (Linux) mit einem Shortcut

wc Linux-Befehl mit Beispielen

Linux-IP-Befehl mit Beispielen

Verlaufsbefehl in Linux (Bash-Verlauf)

Shell-Scripting Teil I:Erste Schritte mit Bash-Scripting

15 Linux-PS-Befehl mit Beispielen

Bash Echo-Befehl mit Beispielen in Linux erklärt