我必须使用Java处理一个4 4GB的XML文件。
我遇到的问题是,XML文件是未格式化提供的,内容实际上都在一行上,没有换行。
我想格式化XML文件,使其具有合理的换行符和缩进,以便如果验证失败(我使用JAXB进行解析),我可以轻松地定位和检查XML中有问题的部分。
有人知道有一个框架可以在Java中以编程方式应用一些基本的XML格式化吗?
发布于 2011-12-06 06:46:01
CkXml将通过getXml方法为您提供所需的内容。
CkXml xml = new CkXml();
xml.LoadXml("<root><company><name>Chilkat Software, Inc.</name><url>http://www.chilkatsoft.com/</url><phone>630-784-9670</phone></company></root>");
xml.getXml();
// Output looks like this:
//
// <?xml version="1.0" encoding="utf-8" ?>
//
// <root>
// <company>
// <name>Chilkat Software, Inc.</name>
// <url>http://www.chilkatsoft.com/</url>
// <phone>630-784-9670</phone>
// </company>
// </root>还有JTidy,它是专门针对超文本标记语言的,但它应该可以很好地满足你的需求。
发布于 2011-12-06 06:49:06
不确定,但是JTidy呢?
发布于 2011-12-06 07:13:51
我将假定XML是格式良好的,只是无效。如果您自己通过JAXB生成XML,则可以在编组对象时输出人类可读的XML。您的Marshaller需要提供格式化输出的选项。您可以像这样设置该属性:
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);如果文档已经提供给您(而您并没有生成它),那么像UltraEdit这样的工具将是最容易使用的。它处理大型文档和格式化/编辑XML。有一个免费的试用,所以如果这是一个短期的开发问题,也许你可以在试用期间解决它。
https://stackoverflow.com/questions/8392947
复制相似问题