如何从XmlTextReader中提取XmlElement ?

本文关键字:提取 XmlElement XmlTextReader | 更新日期: 2023-09-27 18:18:21

我有非常大的XML文件(> 2GB),如果我只是尝试使用XmlDocument.Load()我得到一个OutOfMemory异常。我想通过XmlTextReader读取XML中的高级元素,然后在每个高级元素上使用XPath,而不必将整个XML文档加载到一个巨大的XMLDocument对象中。

例如,如果我有一个XML文件,里面有…

<xmlStuff>
  <foo>
    <name>Bob Builder</name>
    <age>23</age>
  </foo>
  <foo>
    <name>Steve Austin</name>
    <age>99</age>
  </foo>
</xmlStuff>

我正在阅读XML文件与XmlTextReader(因为文件是如此之大),一旦我找到一个元素,我想加载只是1元素到XmlElement,这样我就可以通过XPath解析它。

有更好的方法来处理这个问题吗?我可以通过XmlReader或XmlTextReader执行XPath吗?

如何从XmlTextReader中提取XmlElement ?

看一下c#中的saxparser等价和它指向的文章。