формат xml, красивая печать

Я знаю два способа красиво распечатать или отформатировать xml:

  1. инструменты оболочки
  2. Hack 38 Pretty-Print XML с помощью таблицы стилей Generic Identity и Xalan

какие еще есть бесплатные (как в пиве) форматеры? (кроме использования javascript)


person Thufir    schedule 09.11.2010    source источник


Ответы (5)


Что ж, преобразование идентичности, с которым вы связались, переносимо на любой XSLT-процессор (Saxon, msxml и т. д.).

Кроме того, вы можете посмотреть xmllint, который является частью набора инструментов LibXML2. Опция --format позволяет красиво распечатать ввод. Аналогичная функциональность существует в XMLStarlet (который использует LibXML2 под капотом iirc).

person Nic Gibson    schedule 09.11.2010
comment
Отлично работает и для строк: 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.

person hendry    schedule 04.02.2011

Вы можете использовать http://prettydiff.com/?m=beautify К сожалению, он написан на JavaScript , но это полноценное приложение, поэтому вам никогда не придется об этом знать. Просто знайте, что вы можете запустить его из своего браузера, ничего не загружая и не устанавливая.

person austincheney    schedule 25.11.2011

Мне нравится библиотека Java XOM для работы с XML. У него хороший красивый принтер. что обеспечивает большой контроль над выходом.

person orangepips    schedule 09.11.2010

При использовании 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

person Alex    schedule 25.07.2016