Я знаю два способа красиво распечатать или отформатировать xml:
какие еще есть бесплатные (как в пиве) форматеры? (кроме использования javascript)
Я знаю два способа красиво распечатать или отформатировать xml:
какие еще есть бесплатные (как в пиве) форматеры? (кроме использования javascript)
Что ж, преобразование идентичности, с которым вы связались, переносимо на любой XSLT-процессор (Saxon, msxml и т. д.).
Кроме того, вы можете посмотреть xmllint
, который является частью набора инструментов LibXML2. Опция --format
позволяет красиво распечатать ввод. Аналогичная функциональность существует в XMLStarlet (который использует LibXML2 под капотом iirc).
echo "<xml here>" | xmllint --format -
- person Matt; 20.08.2013
xmlstarlet fo
— это то, что я использую для красивой печати. Xmlstarlet имеет ряд параметров:
$ xmlstarlet fo --help
XMLStarlet Toolkit: Format XML document
Usage: xml fo [<options>] <xml-file>
where <options> are
-n or --noindent - do not indent
-t or --indent-tab - indent output with tabulation
-s or --indent-spaces <num> - indent output with <num> spaces
-o or --omit-decl - omit xml declaration <?xml version="1.0"?>
-R or --recover - try to recover what is parsable
-D or --dropdtd - remove the DOCTYPE of the input docs
-C or --nocdata - replace cdata section with text nodes
-N or --nsclean - remove redundant namespace declarations
-e or --encode <encoding> - output in the given encoding (utf-8, unicode...)
-H or --html - input is HTML
Хороший XML-инженер должен уметь пользоваться xmlstarlet.
Вы можете использовать http://prettydiff.com/?m=beautify К сожалению, он написан на JavaScript , но это полноценное приложение, поэтому вам никогда не придется об этом знать. Просто знайте, что вы можете запустить его из своего браузера, ничего не загружая и не устанавливая.
Мне нравится библиотека Java XOM для работы с XML. У него хороший красивый принтер. что обеспечивает большой контроль над выходом.
При использовании libxml2 в python:
with open(pathToSaveResult, 'w') as fd:
xmlParsed.saveTo(fd,format = libxml2.XML_SAVE_FORMAT)
Изменить: похоже, что в libxml2 есть какая-то ошибка... красивая печать выполняется с помощью тега libxml2.XML_SAVE_NO_EMPTY вместо libxml2.XML_SAVE_FORMAT