Bash:
Werken met XML
Hoe:
Zo parseer je XML in Bash. Gereedschappen? xmllint en xmlstarlet. Door XML-elementen loopen? Absoluut. Voorbeeld met voorbeelduitvoer:
# Aannemende dat xmlstarlet is geïnstalleerd
# Installeren met: apt-get install xmlstarlet
# XML-inhoud parsen
cat <<EOF > voorbeeld.xml
<fruits>
<fruit name="Appel"/>
<fruit name="Banaan"/>
</fruits>
EOF
# Namen extraheren met xmlstarlet
xmlstarlet sel -t -m "//fruit" -v "@name" -n voorbeeld.xml
# Uitvoer zou moeten zijn:
# Appel
# Banaan
Diepere Duik
Terug in de jaren ‘90, dook XML op als een simpeler alternatief voor SGML, maar gestructureerder dan HTML. Nu heeft het gezelschap – JSON, YAML, bijvoorbeeld. Maar XML is nog steeds springlevend, vooral in configuraties en op SOAP-gebaseerde webservices.
Wat betreft gereedschap, xmllint is comfortabel voor XML-validatie, xpath queries. xmlstarlet is het Zwitsers zakmes voor XML-kunstjes – query’en, bewerken, valideren, transformeren. In bash-scripts zijn ze superhelden voor XML-taken.
Onder de motorkap gebruikt xmllint libxml2 – de XML C parser. Het is snel, maar de foutmeldingen? Cryptisch. En xmlstarlet? Recursieve templates en de EXSLT-ondersteuning. Hersenkraker, maar krachtig.
Zie Ook
- xmlsoft.org: Libxml2 en xmllint spullen.
- Stack Overflow: Problemen en oplossingen uit de echte wereld.
- W3Schools XML Tutorial: Basis van XML.