XmlDocument循环次数过多

XmlDocument循环次数过多,xml,vb.net,Xml,Vb.net,我有一个包含多个faultIsolationProcedures的XML文档,我需要增加ID号。该代码可以工作,但它会将每个faultIsolationProcedure计算3次。我尝试过使用不同的XPath表达式,但我一直得到奇怪的3次循环 代码: Dim fiCount=1 将renumNodes的大小设置为XmlNode=xmldoc。选择SingleNode(“/dmodule/content/faultIsolation/faultIsolationProcedure”) 对于renu

我有一个包含多个faultIsolationProcedures的XML文档,我需要增加ID号。该代码可以工作,但它会将每个faultIsolationProcedure计算3次。我尝试过使用不同的XPath表达式,但我一直得到奇怪的3次循环

代码:

Dim fiCount=1
将renumNodes的大小设置为XmlNode=xmldoc。选择SingleNode(“/dmodule/content/faultIsolation/faultIsolationProcedure”)
对于renumNodes中的每个fi
Dim origFiId=renumNodes.Attributes(“id”).Value
Dim newFIID=“f”+fiCount.ToString
renumNodes.Attributes(0).Value=modExistID
DictionaryEnumberId.Add(origFiId,newFIID)
fiCount=fiCount+1
下一个
带有单个错误的XML示例


使用XElement,我觉得更容易。首先是数据

Dim xe As XElement
'xe=XElement.Load(“此处的路径”)
'对于测试,请使用文字
xe=
请注意,我添加了一个faultIsolationProcedure

然后使用该数据,id可以像这样递增

Dim ie作为IEnumerable(属于元素)
'获取所有故障隔离程序
ie=从el到xe。。。选择el
'增量id
对于ie中的每个f作为元素
Dim idv为整数=0
如果整数.TryParse(f.@id,idv),则
f、 @id=(idv+1).ToString
其他的
Dim att As XAttribute=f.属性(“id”)
如果att不是什么,那么
f、 @id=“1”
如果结束
如果结束
下一个

将选项设置为严格打开。你可能会发现一些东西!您是打算
renumNodes.Attributes(“id”).Value
还是应该
fi.Attributes(“id”).Value
?我将其更改为fi.Attributes(“id”).Value,但现在得到一个错误“选项严格禁止后期绑定” @AndrewMorton@JenPann对于renumNodes中的XmlNode,每个fi的循环都需要
。我现在得到的错误对象引用没有设置为对象的实例。在Dim origFild=fi.Attribute(“id”).value@AndrewMortonWow中,我觉得这真的很困惑。让我坐一下,希望我能了解更多。谢谢你的详细介绍response@JenPann-如果您使用调试器并逐步完成代码,这里有一个指向XML LINQ@JenPann的链接。。。。