繁体   English   中英

Stax:如何开始从XML文件的特定位置进行解析?

[英]Stax: How start to parse from a certain position of XML file?

我有一个很大的XML文件(500Mb)。 在这种情况下是否可以跟踪最后一个解析的元素的位置? 因此,如果我成功解析了其中一半,或者jvm突然崩溃,那么我可以从上次离开的位置立即开始。

您大概可以编写某种形式的历史存储来包含直到解析为止的结构。 但是我怀疑从那点开始继续解析,您将不得不关闭解析器上的所有形式的验证-XML旨在从头到尾保证文档的结构和内容; 它并不是为临时解析而设计的。

在您的情况下,您仍然需要能够提供某种形式的上下文-也许是通过将当前的工作元素树保存在内存中,将其与相关的头信息连接起来,然后像解析新文件一样进行解析; 仅提交未完成的内容,而不是整个文件。

例如,给定XML结构:

<root>
  <child id="1">
    <subchild id="1'/>
  </child>
  <child id="2'>
    <subchild id="2"/>
    <subchild id="3"/>
  <child/>

如果解析器在解析<child id="1"/>后崩溃,则需要制作一个包含<root>元素的新伪文档,并在继续处理时注意已经解析了子代1的事实。 -如果有任何依赖性问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM