如何使用XMLTextReader读取完整节点
本文关键字:节点 读取 何使用 XMLTextReader | 更新日期: 2023-09-27 18:37:16
我有这样的东西:
<?xml version="1.0" encoding="utf-8"?>
<Data>
<ConfigDatas>
<ArrayOfConfigData xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BTTest.Models">
<ConfigData>
<id>4</id>
<ip>111111</ip>
<port>34</port>
</ConfigData>
<ConfigData>
<id>0</id>
<ip>222222</ip>
<port i:nil="true" />
</ConfigData>
</ArrayOfConfigData>
</ConfigDatas>
<OtherTypeDatas>
<ArrayOfConfigData ...>
....
</ArrayOfConfigData>
<OtherTypeDatas>
</Data>
我想解析xml,获取ConfigDatas和OtherTypeDatas节点(我可以通过读取来做到这一点),但是当我得到例如ConfigDatas节点时,能够一次读取所有ArrayOfConfigData节点文本。这可能吗?
XmlTextReader 旨在循环访问 XML 文档。 这非常节省内存,因为您不会一次创建整个文档的内存中表示形式。 如果您有非常大的 XML 文档,则必须以这种方式处理它们。
如果要加载整个XML,以便可以使用XPath查询,请根据确切的需要改用XmlDocument或XDocument。
这是
可能的;你需要做的是记住起始节点(ConfigDatas)的嵌套级别,然后在嵌套级别更高时循环读取XML(意思是,当你在开始节点下方时)。如果 XML 的其他部分您不关心,这种方法可以节省您的内存,因为如果您只需要几个较小的节点,则不会加载可能太大的整个文档。