GNU/Linux >> Linux Esercitazione >  >> Linux

Scripting:qual è il modo più semplice per estrarre un valore in un tag di un file XML?

xml2 può convertire xml in/da un formato orientato alla riga:

xml2 < pom.xml  | grep /project/version= | sed 's/.*=//'

Altro modo:xmlgrep e XPath:

xmlgrep --text_only '/project/version' pom.xml

Svantaggio:lento


Utilizzando python

$ python -c 'from xml.etree.ElementTree import ElementTree; print ElementTree(file="pom.xml").findtext("{http://maven.apache.org/POM/4.0.0}version")'
1.0.74-SNAPSHOT

Usando xmlstarlet

$ xml sel -N x="http://maven.apache.org/POM/4.0.0" -t -m 'x:project/x:version' -v . pom.xml
1.0.74-SNAPSHOT

Usando xmllint

$ echo -e 'setns x=http://maven.apache.org/POM/4.0.0\ncat /x:project/x:version/text()' | xmllint --shell pom.xml | grep -v /
1.0.74-SNAPSHOT

Linux
  1. Linux:quali file system su Linux archiviano il tempo di creazione?

  2. Cosa succede esattamente quando eseguo un file nella shell?

  3. Cosa significa l'attributo "s" nelle autorizzazioni dei file??

  4. Quali sono gli usi legittimi del comando `touch`?

  5. A cosa si riferisce l'interprete segnalato da `file`?

Docker File vs Docker Compose:qual è la differenza?

Qual è il modo più semplice per liberare spazio su un disco rigido?

Cosa significa 'rc' in `.bashrc`, ecc.?

Quali file system su Linux memorizzano l'ora di creazione?

Ottieni il valore numerico chmod per un file

Qual è il limite di dimensione di /etc/hosts?