【发布时间】:2010-09-27 23:14:55
【问题描述】:
我有一个简单的结构化 XML 文件,如下所示:
<ttest ID="ttest00001", NickName="map00001"/>
<ttest ID="ttest00002", NickName="map00002"/>
<ttest ID="ttest00003", NickName="map00003"/>
<ttest ID="ttest00004", NickName="map00004"/>
..... 此 xml 文件大小约为 2.5MB。
在我的源代码中,我将有一个循环来获取昵称
在每个循环中,我都有这样的东西:
nickNameLoopNum = MyXmlDoc.SelectSingleNode("//ttest[@ID=' + testloopNum + "']").Attributes["NickName"].Value
这一行将花费我 30 到 40 毫秒。
我搜索了一些旧文章(可以追溯到 2002 年)说,使用某种编译的“xpath”可以帮助解决这种情况,但那是 5 年前的事了。我想知道有没有一种现代的做法可以让它更快? (我使用的是 .NET 3.5)
【问题讨论】:
-
在提供解决方案之前 - 循环的目标是什么?您是否只想获取所有昵称的列表? ID="ttest*" 的节点的所有昵称?与其浪费每个 SelectSingleNode 的 30/40 毫秒,我们可以在一次调用中完成所有这些 - 但我不知道您的目标是什么。
标签: .net xml performance .net-3.5