2

哪些库/工具可用于整理xml

我找到了强烈推荐的HtmlTidy,但不幸的是它不能正确处理我的输入 xml 文件 - 我的意思是提交错误报告,但同时我需要一个适用于我的 xml 的 xml 整理工具。

任何人都可以提出任何替代方案吗?

更新: “整洁”是指美化 xml,所以(例如):

<xml><testing attribute="somevalue"><etc /></testing></xml>

变成

<xml>
  <testing attribute="somevalue">
    <etc />
  </testing>
</xml>

我在使用 HtmlTidy 时遇到的错误

当我有机会使用一些 xml 重现它时,我可以在错误报告中提交我打算这样做,但是如果您有兴趣,我得到的错误有点像这样:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: plain text isn't allowed in <head> elements
line 1 column 1 - Info: <head> previously mentioned
line 1 column 1 - Warning: inserting implicit <body>
line 1 column 6558 - Error: <myelement> is not recognized!
line 1 column 6558 - Warning: discarding unexpected <myelement>
** snip - around 15 similar errors / warnings **
48 warnings, 22 errors were found! Not all warnings/errors were shown.

This document has errors that must be fixed before
using HTML Tidy to generate a tidied up version.

值得注意的是,我的 xml 相当大(~18k)并且全部格式化在一行上,但它是完全有效的 xml。如果我在 Visual Studio 中打开文件并使用 VS 的“美化器”,HtmlTidy 能够正确解析生成的 xml。

4

2 回答 2

0

你有 xmllint 吗?它的--format选项将提供很好的缩进格式作为输出。

于 2010-07-05T10:52:32.563 回答
0

如果您可以使用 XSLT,那么您已经有了一个可以执行此操作的工具。

创建一个包含标识 transform的样式表,并使用xsl:output的 indent 属性来缩进输出。Bingo——按照您的定义,整洁的 XML。

顺便提一下,添加空格的 XML 原则上并不等同于原始 XML(在某些情况下空格对 XML 很重要),但这对您来说可能无关紧要。

于 2010-07-05T11:05:25.507 回答