首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java中格式化一个巨大的XML文件?

如何在Java中格式化一个巨大的XML文件?
EN

Stack Overflow用户
提问于 2011-12-06 06:42:36
回答 6查看 2.4K关注 0票数 1

我必须使用Java处理一个4 4GB的XML文件。

我遇到的问题是,XML文件是未格式化提供的,内容实际上都在一行上,没有换行。

我想格式化XML文件,使其具有合理的换行符和缩进,以便如果验证失败(我使用JAXB进行解析),我可以轻松地定位和检查XML中有问题的部分。

有人知道有一个框架可以在Java中以编程方式应用一些基本的XML格式化吗?

EN

回答 6

Stack Overflow用户

发布于 2011-12-06 06:46:01

CkXml将通过getXml方法为您提供所需的内容。

代码语言:javascript
复制
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,它是专门针对超文本标记语言的,但它应该可以很好地满足你的需求。

票数 1
EN

Stack Overflow用户

发布于 2011-12-06 06:49:06

不确定,但是JTidy呢?

票数 0
EN

Stack Overflow用户

发布于 2011-12-06 07:13:51

我将假定XML是格式良好的,只是无效。如果您自己通过JAXB生成XML,则可以在编组对象时输出人类可读的XML。您的Marshaller需要提供格式化输出的选项。您可以像这样设置该属性:

代码语言:javascript
复制
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

如果文档已经提供给您(而您并没有生成它),那么像UltraEdit这样的工具将是最容易使用的。它处理大型文档和格式化/编辑XML。有一个免费的试用,所以如果这是一个短期的开发问题,也许你可以在试用期间解决它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8392947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档