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. Захоплює розум, але потужно.
Дивіться також
- xmlsoft.org: Матеріали про Libxml2 та xmllint.
- Stack Overflow: Реальні проблеми та рішення.
- W3Schools XML Tutorial: Основи XML.