格式xml,漂亮的打印

时间:2010-11-09 00:25:10

标签: xml pretty-print prettify

我知道两种方式“漂亮打印”或格式化xml:

shell tools Hack 38 Pretty-Print XML Using a Generic Identity Stylesheet and Xalan

还有其他免费(如啤酒)格式化程序吗? (除了使用javascript)

5 个答案:

答案 0 :(得分:13)

好吧,您链接的身份转换可以移植到任何XSLT处理器(Saxon,msxml等)。

此外,您可以查看属于LibXML2工具包的xmllint--format选项允许您打印输入。类似的功能存在于XMLStarlet中(在引擎盖下使用LibXML2)。

答案 1 :(得分:10)

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。

答案 2 :(得分:3)

您可以使用http://prettydiff.com/?m=beautify 不幸的是,它是用JavaScript编写的,但它是一个完整的应用程序,所以你永远不必知道。只需知道您可以在浏览器内部运行而无需下载或安装任何内容。

答案 3 :(得分:1)

我喜欢用于XML操作的java库XOM。它有一个很好的Pretty Printer,可以对输出提供很多控制。

答案 4 :(得分:0)

在python中使用libxml2时:

with open(pathToSaveResult, 'w') as fd:
   xmlParsed.saveTo(fd,format = libxml2.XML_SAVE_FORMAT)

编辑:看起来libxml2中有一些错误...使用标签libxml2.XML_SAVE_NO_EMPTY而不是libxml2.XML_SAVE_FORMAT

完成了漂亮的打印