Tag: xmlreader

是否有可能克隆xmlTextReader(或多遍读取)?

我目前必须修复现有的应用程序以使用libxml2的DOM接口以外的东西,因为事实certificate它传递的XML文件太大而无法加载到内存中。 我已经重写了从迭代DOM树到大部分时间使用xmlTextReader的数据加载,而没有太多问题。 (我使用xmlNewTextReaderFilename打开本地文件。) 然而,事实certificate,大数据所在的子树必须不按顺序读取,但我必须先收集一些(少量)数据。 (问题正是这个子树包含大量数据,因此只将这个子树加载到内存中也没有多大意义。) 最简单的方法就是“克隆”/“复制”我当前的读者,提前读取然后返回原始实例继续阅读。 (似乎我不是第一个 ……在C#方面甚至实现了一些东西: 带有书签的XML阅读器 。) 但是,似乎没有任何方法可以“复制”xmlTextReader的状态。 如果我不能重新读取文件的一部分 ,我也可以重新读取整个文件,虽然这很浪费,但在这里也可以,但我仍然需要记住我之前的位置? 是否有一种简单的方法可以记住xmlTextReader在当前文档中的位置,这样我以后可以在第二次读取文档/文件时再次找到该位置? 这是一个问题的例子: … here goes up to one GB in stuff … <!– << … even more stuff … <!– I need (part of) the data here to meaningfully interpret the data in [y2] that came before. The best approach would seem […]