格式 xml,漂亮的打印

发布于 2024-10-01 05:30:21 字数 406 浏览 8 评论 0原文

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

  1. shell 工具
  2. Hack 38 使用通用身份样式表和 Xalan 打印漂亮的 XML

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

I know of two ways to "pretty print", or format, xml:

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

what other free (as in beer) formatters are there? (aside from using javascript)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

黑寡妇 2024-10-08 05:30:21

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

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

Well, the identity transform you linked to is portable to any XSLT processor (Saxon, msxml, etc).

Additionally, you could look at xmllint which is part of the LibXML2 toolkit. The --format option allows you to pretty print the input. Similar functionality exists in XMLStarlet (which uses LibXML2 under the hood iirc).

回梦 2024-10-08 05:30:21

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。

xmlstarlet fo is what I use for pretty printing. Xmlstarlet has a number of options:

$ 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

A good XML engineer should be able to wield xmlstarlet.

说好的呢 2024-10-08 05:30:21

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

You can use http://prettydiff.com/?m=beautify
Unfortunately, it is written in JavaScript, but it is a complete application so you never have to know that. Just know that you can run from inside your browser without downloading or installing anything.

不甘平庸 2024-10-08 05:30:21

我喜欢用于 XML 操作的 java 库 XOM。它有一个很好的 漂亮打印机这提供了对输出的很多控制。

I like the java library XOM for XML manipulation. It has a nice Pretty Printer that provides a lot of control over the output.

記憶穿過時間隧道 2024-10-08 05:30:21

在 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 完成漂亮的打印

When using libxml2 in python:

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

Edit: It looks like there is some bug in libxml2 ...pretty printing is done with the tag libxml2.XML_SAVE_NO_EMPTY instead of libxml2.XML_SAVE_FORMAT

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文