Bash:
Att arbeta med XML

Hur man gör:

Här är hur man tolkar XML i Bash. Verktyg? xmllint och xmlstarlet. Loopa igenom XML-element? Absolut. Exempel med utdataprovet:

# Förutsatt att xmlstarlet är installerat
# Installera med: apt-get install xmlstarlet

# Tolka XML-innehåll
cat <<EOF > sample.xml
<fruits>
  <fruit name="Apple"/>
  <fruit name="Banana"/>
</fruits>
EOF

# Extrahera namn med xmlstarlet
xmlstarlet sel -t -m "//fruit" -v "@name" -n sample.xml

# Utdata bör vara:
# Apple
# Banana

Djupdykning

Tillbaka på 90-talet dök XML upp som ett enklare alternativ till SGML, men mer strukturerat än HTML. Nu har det sällskap – JSON, YAML, till exempel. Men XML håller sig kvar, speciellt i konfigurationer och SOAP-baserade webbtjänster.

När det kommer till verktyg är xmllint bekvämt för XML-validering, xpath-frågor. xmlstarlet är den schweiziska armékniven för XML-upptåg – frågor, redigering, validering, omvandling. I bash-skript är de superhjältar för XML-uppgifter.

Under huven använder xmllint libxml2 – XML C-parsern. Den är snabb, men felmeddelandena? Kryptiska. Och xmlstarlet? Rekursiva mallar och stöd för EXSLT. Hjärnbrytande, men kraftfullt.

Se även