Хотя XML (Extensible Markup Language) является языком разметки, читаемым человеком, вы скорее всего найдете XML-файлы неструктурированными настолько, что у вас будет болеть голова!
Вот как будет выглядеть вывод команды cat, если мы захотим посмотреть XML документ
Вывод XML-файлов в терминале
Прежде чем приступить к процессу, позвольте мне поделиться неструктурированным XML, который я собираюсь использовать на протяжении всего руководства.
Образец файла mydomain.xml содержит множество ip и FQDN и я собираюсь отформатировать этот файл, чтобы уменьшить головную боль!
Итак, давайте начнем с первого метода:
Метод 1: Использование xmllint для красивого вывода XML
Утилита xmllint предоставляет нам опцию –format, с помощью которой пользователи могут переформатировать свои XML-файлы.
Чтобы переформатировать XML-файлы с помощью xmllint, необходимо следовать приведенному синтаксису:
xmllint --format XML_FILE
Для демонстрации я буду использовать файл mydomain.xml:
xmllint --format mydomain.xml
По умолчанию добавляется два пробела, но что если вы хотите добавить больше?
Вы можете использовать переменную окружения XMLLINT_INDENT.
Например, я буду добавлять четыре пробела в моем mydomain.xml:
XMLLINT_INDENT=" " xmllint --format mydomain.xml
Метод 2: Использование набора инструментов XMLStarlet
XMLStarlet – это набор утилит командной строки, служащих для различных целей.
В нем есть команда xml, с помощью которой можно выполнить практически все, что связано с XML-файлами!
Но он требует ручной установки, а для начала работы имеется пакет snap:
sudo snap install xmlstarlet
А чтобы отформатировать XML-файлы, нужно просто сопрячь опцию format с командой xml, как показано ниже:
xml format email.xml
Как я уже упоминал, он предоставляет нам различные опции, и есть четыре опции форматирования:
- -n не будет интенсифицировать вывод. Это означает, что не будет добавляться пробел, и результат будет похож на выравнивание текста по левому краю.
- -t будет оформлять вывод с помощью вкладок для лучшей видимости.
- -o опускает декларацию XML. Это не что иное, как добавление <?xml version=”1.0″?> в верхней части XML-файла.
- -s добавляет пробел. Таким образом, вы сами решаете, какое количество пробелов вам нужно!
Например, я буду добавлять шесть пробелов intend с помощью fo, чтобы разрешить форматирование:
xml fo -s 6 email.xml
Метод 3: Использование команды xml_pp
Это наименее гибкий вариант, когда дело доходит до форматирования XML-файлов, поскольку xml_pp является частью модуля Perl под названием XML::Twig.
И это единственный вариант, который изменяет непосредственно файл.
Но он требует ручной установки, и если вы работаете с дистрибутивом на базе Debian, то данная команда поможет вам справиться с задачей:
sudo apt install xml-twig-tools
Например, я буду использовать стиль записи для форматирования mydomain.xml:
Здесь опция -i используется для внесения изменений в исходный файл, в то время как она предназначена для присоединения к нему расширения.
А опция -s используется для использования параметров стиля, и я выбрал запись с именем стиля.
Заключение
В этом руководстве я объяснил, как можно форматировать ваши XML-файлы, делая их более читабельными.
А если у вас есть какие-либо вопросы, задавайте их в разделе комментариев.