为了账号安全,请及时绑定邮箱和手机立即绑定

在C#代码中解析(大)XML的最佳方法是什么?

在C#代码中解析(大)XML的最佳方法是什么?

郎朗坤 2019-10-17 13:05:40
我正在用C#语言编写GIS客户端工具,以从服务器中检索基于GML的XML模式(以下示例)中的“功能”。提取限制为100,000个功能。我guestimate,最大的extract.xml可能起床约150兆字节,所以显然DOM解析器是出我一直在试图决定之间的XmlSerializer和XSD.EXE生成绑定-或- 的XmlReader和手工制作的对象图。或者,也许还有一种我还没有考虑过的更好的方法?像XLINQ还是????有人可以指导我吗?特别是关于任何给定方法的存储效率。如果不是这样,我将不得不“原型化”这两个解决方案并并排介绍它们。我对.NET有点不了解。任何指导将不胜感激。感谢您。基思XML示例 -最多100,000个,每个功能最多234,600个坐标。<feature featId="27168306" fType="vegetation" fTypeId="1129" fClass="vegetation" gType="Polygon" ID="0" cLockNr="51598" metadataId="51599" mdFileId="NRM/TIS/VEGETATION/9543_22_v3" dataScale="25000">  <MultiGeometry>    <geometryMember>      <Polygon>        <outerBoundaryIs>          <LinearRing>            <coordinates>153.505004,-27.42196 153.505044,-27.422015 153.503992 .... 172 coordinates omitted to save space ... 153.505004,-27.42196</coordinates>          </LinearRing>        </outerBoundaryIs>      </Polygon>    </geometryMember>  </MultiGeometry></feature>
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

总结一下,对于任何在google中找到此主题的人来说,答案都更加明显。


在.NET 2之前,XmlTextReader是标准API(thanx Mitch ;-)中可用的内存效率最高的XML解析器。


.NET 2引入了XmlReader类,它再次变得更好。它是一个仅转发元素的迭代器(有点像StAX解析器)。(谢谢脑;-)


记住,小子,任何XML实例都有可能超过500k,不要使用DOM!



查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 796 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信