【发布时间】:2020-03-04 19:00:04
【问题描述】:
我有一个包含多个 faultIsolationProcedures 的 XML 文档,我需要增加 ID 号。代码工作除了它计数的每个 faultIsolationProcedure 3 次。我尝试过使用不同的 XPath 表达式,但总是出现奇怪的 3 次循环。
代码:
Dim fiCount = 1
Dim renumNodes As XmlNode = xmldoc.SelectSingleNode("/dmodule/content/faultIsolation/faultIsolationProcedure")
For Each fi In renumNodes
Dim origFiId = renumNodes.Attributes("id").Value
Dim newFIID = "f" + fiCount.ToString
renumNodes.Attributes(0).Value = modExistID
dictionaryRenumberID.Add(origFiId, newFIID)
fiCount = fiCount + 1
Next
带有单个错误的示例 XML
<content>
<faultIsolation>
<faultIsolationProcedure applicRefId="test" id="-1">
<isolationStep id="i1-001">
<isolationStepQuestion></isolationStepQuestion>
<isolationStepAnswer>
<yesNoAnswer>
<yesAnswer nextActionRefId="s1-003" />
<noAnswer nextActionRefId="e1-002" />
</yesNoAnswer>
</isolationStepAnswer>
</isolationStep>
<isolationProcedureEnd id="e1-002">
</isolationProcedureEnd>
<isolationStep id="i1-001a">
</isolationStep>
<isolationProcedureEnd id="e1-007">
</isolationProcedureEnd>
</faultIsolationProcedure>
</faultIsolation>
</content>
【问题讨论】:
-
设置选项严格。你可能会发现一些东西!
-
您是打算
renumNodes.Attributes("id").Value还是应该是fi.Attributes("id").Value? -
我将其更改为 fi.Attributes("id").Value 但现在出现错误“Option Strict on disallows late binding”@AndrewMorton
-
@JenPann 循环必须是
For Each fi As XmlNode In renumNodes。 -
我现在得到错误对象引用未设置为对象的实例。在 Dim origFild = fi.Attribute("id").value @AndrewMorton