GNU/Linux >> Linux Esercitazione >  >> Linux

Linux Bash XMLLINT con XPATH

Il mio preferito è xmlstarlet perché sembra essere più potente di xmllint:

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

il modo migliore per scegliere come target uno specifico e quindi eseguire il drill-down fino al relativo elemento figlio

L'espressione XPath corretta per eseguire questa operazione è:

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

In parole povere:inizia dal nodo del documento, fino all'elemento del documento resources , sul suo figlio item , ma solo se il valore di id l'attributo è "index.php", al suo figlio description e recuperarne il valore testuale.

Uso xmllint per convalidare i documenti XML, ma mai per le espressioni di percorso. In una bash shell (almeno con Mac OS) c'è uno strumento ancora più semplice per valutare le espressioni XPath, chiamato "xpath":

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

Quindi, si ottiene il seguente risultato:

Found 1 nodes:
-- NODE --
DESCRIPTION

Se preferisci ancora xmllint, usalo nel modo seguente:

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

Per impostazione predefinita, --xpath implica --noout , che impedisce a xmllint di restituire il file XML di input. Per rendere l'output più leggibile, reindirizzo l'output a un file.

$ cat result.txt 
DESCRIPTION

Linux
  1. Analisi della cronologia di Bash in Linux

  2. Utilizzo di modificatori di parole con la cronologia di Bash in Linux

  3. Comando JQ in Linux con esempi

  4. Bash -c con parametri posizionali?

  5. Elimina la password inserita nel prompt della password nascosta (Linux) con scorciatoia

Comando wc Linux con esempi

Comando IP Linux con esempi

Comando della cronologia in Linux (Cronologia di Bash)

Shell Scripting Parte I:Introduzione agli script bash

15 Comando Linux ps con esempi

Comando Bash Echo spiegato con esempi in Linux