Bash:
Робота з XML

Як це зробити:

Ось як аналізувати XML у Bash. Інструменти? xmllint та xmlstarlet. Проходження через елементи XML? Однозначно. Приклад із прикладним виводом:

# Припустимо, що xmlstarlet встановлено
# Встановіть за допомогою: apt-get install xmlstarlet

# Розбір вмісту XML
cat <<EOF > sample.xml
<fruits>
  <fruit name="Apple"/>
  <fruit name="Banana"/>
</fruits>
EOF

# Витягнення імен за допомогою xmlstarlet
xmlstarlet sel -t -m "//fruit" -v "@name" -n sample.xml

# Вивід має бути:
# Apple
# Banana

Поглиблений аналіз

В кінці 90-х з’явився XML як спрощена альтернатива SGML, але більш структурована, ніж HTML. Тепер у нього є компанія – наприклад, JSON, YAML. Але XML все ще тримається, особливо в конфігураціях та веб-сервісах на основі SOAP.

З точки зору інструментів, xmllint зручний для валідації XML, xpath запитів. xmlstarlet - це швейцарський армійський ніж для XML-фокусів – запит, редагування, валідація, перетворення. У bash-скриптах вони є супергероями для завдань з XML.

Під капотом, xmllint використовує libxml2 – C-парсер XML. Він швидкий, але повідомлення про помилки? Складні для розуміння. А xmlstarlet? Рекурсивні шаблони та підтримка EXSLT. Захоплює розум, але потужно.

Дивіться також