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
- xmlsoft.org: Libxml2 och xmllint-grejer.
- Stack Overflow: Verkliga problem och lösningar.
- W3Schools XML Tutorial: Grundläggande om XML.