формат xml, красивая печать - PullRequest
6 голосов
/ 09 ноября 2010

Мне известны два способа «красивой печати» или форматирования xml:

инструменты оболочки Hack 38 Pretty-Print XML с использованием универсальной таблицы стилей и Xalan

Какие есть другие бесплатные (как в пиве) форматтеры?(кроме использования JavaScript)

Ответы [ 5 ]

13 голосов
/ 09 ноября 2010

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

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

10 голосов
/ 05 февраля 2011

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.

3 голосов
/ 25 ноября 2011

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

1 голос
/ 09 ноября 2010

Мне нравится библиотека Java XOM для работы с XML.Он имеет прекрасный Pretty Printer , который обеспечивает большой контроль над выводом.

0 голосов
/ 25 июля 2016

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

...