用于整理xml的实用程序/库

时间:2010-06-29 05:09:58

标签: xml htmltidy

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

我发现了强烈推荐的HtmlTidy,但遗憾的是它无法正确处理我输入的xml文件 - 我的意思是提交错误报告,但与此同时我需要一个可以使用的xml整理工具我的xml。

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

更新:“Tidy”我的意思是美化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。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果你可以使用XSLT,那么你已经有了一个可以做到这一点的工具。

创建一个包含identity transform的样式表,并使用xsl:output的缩进属性缩进输出。 Bingo - 整洁的XML,按照你的定义。

顺便提一下,请注意,添加空间的XML原则上与原始XML不同(有时空格对XML很重要),但这对您来说无关紧要。