首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果XML数据太大而无法放入内存,如何访问Java中的XML数据子集?

如果XML数据太大而无法放入内存,如何访问Java中的XML数据子集?
EN

Stack Overflow用户
提问于 2018-05-31 00:30:08
回答 2查看 0关注 0票数 0

以下是使用这种API的代码:

代码语言:javascript
复制
URL url = ...
XMLStream xml = XXXFactory(url.inputStream()) ;


// process each <book> element in this document.
// the <book> element may have subnodes.
// You get a DOM/JDOM like tree rooted at the next <book>.


while (xml.hasContent()) {
  XMLElement book = xml.getNextElement("book");
  processBook(book);
}
EN

回答 2

Stack Overflow用户

发布于 2018-05-31 08:44:55

解析文档部分而不将其完全加载到内存中的唯一方法是使用SAX解析器。

以下是一些官方SUN如何使用SAX的例子:

http://java.sun.com/developer/codesamples/xml.html#sax

票数 0
EN

Stack Overflow用户

发布于 2018-05-31 10:07:00

你可以执行以下操作:

  1. 使用SAXStAX扫描XML文件,并立即将所有内容重新排序为 StringBuilder,即创建你自己的XML文件副本。
  2. 如果遇到endElement并且你知道不需要刚才解析的子树,请清除该子树StringBuilder
  3. 如果你需要它,你可以从创建的“copy”构建DOM树。

如果你需要事先知道树的边界,它也会有所帮助。

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

https://stackoverflow.com/questions/-100000171

复制
相关文章

相似问题

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