Bash:
Praca z XML
Jak to zrobić:
Oto, jak parsować XML w Bashu. Narzędzia? xmllint i xmlstarlet. Iteracja przez elementy XML? Zdecydowanie. Przykład z przykładowym wynikiem:
# Zakładając, że xmlstarlet jest zainstalowany
# Zainstaluj za pomocą: apt-get install xmlstarlet
# Parsowanie zawartości XML
cat <<EOF > sample.xml
<fruits>
<fruit name="Apple"/>
<fruit name="Banana"/>
</fruits>
EOF
# Wydobywanie nazw za pomocą xmlstarlet
xmlstarlet sel -t -m "//fruit" -v "@name" -n sample.xml
# Wynik powinien być:
# Apple
# Banana
Dogłębna analiza
W latach 90. XML pojawił się jako prostsza alternatywa dla SGML, ale bardziej strukturalna niż HTML. Teraz ma towarzystwo – na przykład JSON, YAML. Ale XML nadal ma się dobrze, szczególnie w konfiguracjach i usługach internetowych opartych na SOAP.
Jeśli chodzi o narzędzia, xmllint jest wygodny do walidacji XML i zapytań xpath. xmlstarlet to szwajcarski scyzoryk do sztuczek z XML – zapytania, edycja, walidacja, transformacja. W skryptach bash, są superbohaterami do zadań związanych z XML.
Pod maską, xmllint używa libxml2 – parsera XML w C. Jest szybki, ale komunikaty o błędach? Krypticzne. A xmlstarlet? Rekurencyjne szablony i wsparcie dla EXSLT. Trudne do zrozumienia, ale potężne.
Zobacz także
- xmlsoft.org: Rzeczy dotyczące Libxml2 i xmllint.
- Stack Overflow: Problemy i rozwiązania z prawdziwego świata.
- W3Schools XML Tutorial: Podstawy XML.