我有一段简单的代码可以将完整的XML文件转换为字符串。
xOrgXml.Load(mOrgFile)
fFullString = xOrgXml.OuterXml
我使用string.replace用另一个Form的输入替换字符串的某些部分。然后我将其转换回完整的XML文件。这一切都很好。
fFullString = fFullString.Replace("<XMLtag>Item</XMLtag>", "<XMLtag>" & Form2.NewItem & "</XMLtag>")
mXMLDocSave.LoadXml(fFullString)
mXMLDocSave.Save(pSavelocation)
因为&#34;项目&#34;在字符串中多次出现我希望增加进度条(1)每次完成替换但string.replace方法是一次性传递,即使将其封闭在For Each语句中也是如此。
fFullString = fFullString.Replace("<XMLtag>Item</XMLtag>", "<XMLtag>" & Form2.NewItem & "</XMLtag>")
pProgressbar.Increment(1)
我试图使用string.split拆分完整的字符串,但这对我不起作用,因为唯一可用于拆分的字符是&#34;&lt;&#34;和&#34;&gt;&#34;这是将字符串转换回XML文件时所需的XML标记的关键部分
有没有人对如何处理这个问题有充分的认识?
答案 0 :(得分:0)
典型的我发布了一个问题,30分钟后我找到了解决方案......
如果有人面临类似的挑战,以供将来参考:
我将我的string.replace语句更改为替换语句,该语句仅替换遇到的第一个匹配项。将此包含在For Each和Do Until循环中,每次进度条增加(1)。
原始字符串.replace:
fFullString = fFullString.Replace("<XMLtag>Item</XMLtag>", "<XMLtag>" & Form2.NewItem & "</XMLtag>")
新字符串替换为For Each和Do Until循环中包含的1(..... ,, 1 )限制:
For Each Replacement As String In ReplaceCollection
If Replacement = "<XMLtag>Item</XMLtag>" Then
Do Until fFullString.Contains(Replacement) = False
fFullString = Replace(fFullString, Replacement, "<XMLtag>" & Form2.NewItem & "</XMLtag>", , 1)
pProgressbar.Increment(1)
Loop
End If
Next
我希望这也能帮助别人。