【发布时间】:2018-02-20 19:46:17
【问题描述】:
我有一段简单的代码可以将完整的 XML 文件转换为字符串。
xOrgXml.Load(mOrgFile)
fFullString = xOrgXml.OuterXml
我使用 string.replace 将字符串的某些部分替换为另一个表单的输入。之后我将它转换回一个完整的 XML 文件。这一切都很好。
fFullString = fFullString.Replace("<XMLtag>Item</XMLtag>", "<XMLtag>" & Form2.NewItem & "</XMLtag>")
mXMLDocSave.LoadXml(fFullString)
mXMLDocSave.Save(pSavelocation)
因为“Item”在字符串中多次出现,所以我想在每次替换完成时用 (1) 来增加进度条,但 string.replace 方法是一次性的,即使将它包含在 For每个语句。
fFullString = fFullString.Replace("<XMLtag>Item</XMLtag>", "<XMLtag>" & Form2.NewItem & "</XMLtag>")
pProgressbar.Increment(1)
我尝试使用 string.split 拆分完整的字符串,但这对我不起作用,因为唯一可用于拆分的字符是“”,它们是转换时所需的 XML 标记的关键部分字符串返回一个 XML 文件
有人对如何解决这个问题有一个可靠的想法吗?
【问题讨论】:
-
也许创建一个循环来检查您的字符串的 IndexOf 并且每次找到它时,它使用 Substring 一次只替换一个实例
-
感谢您的评论 Chase,我还没有探索 IndexOf 选项,因为我已经找到了另一个解决方案,但也许使用 IndexOf 可能会产生更清晰的代码。也许发布示例代码作为其他面临此问题的人的次要答案。
标签: xml string vb.net replace progress-bar