7

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

  1. 外壳工具
  2. 使用通用身份样式表和 Xalan 的 Hack 38 Pretty-Print XML

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

4

5 回答 5

13

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

此外,您可以查看xmllint哪个是LibXML2工具包的一部分。该--format选项允许您漂亮地打印输入。XMLStarlet中存在类似的功能(它在 iirc 的底层使用 LibXML2)。

于 2010-11-09T11:04:16.450 回答
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。

于 2011-02-04T23:15:27.667 回答
3

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

于 2011-11-25T10:38:11.587 回答
1

我喜欢用于 XML 操作的 java 库XOM 。它有一个漂亮的打印机,可以很好地控制输出。

于 2010-11-09T01:38:27.507 回答
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 完成的

于 2016-07-25T10:14:39.270 回答