我有替换xml,它有占位符及其值。我有XML字符串,我需要搜索占位符并用值替换它。
例如,
占位符XML :
<PlaceHolders>
<PlaceHolder placeholder="PD1" value="value1" />
</PlaceHolders>
XML
<customers>
<customer avatarURL="PD1"/>
</customers>
用值“value1”替换“PD1”的最佳方法是什么?
答案 0 :(得分:0)
这是使用XPath执行此操作的一种方法。这将用正确的值替换单个占位符。您需要遍历并为每个占位符执行一次此操作。这将替换XML中任何元素的任何属性中的占位符:
Dim doc As New XmlDocument()
doc.LoadXml("...")
For Each node As XmlNode In doc.SelectNodes("//@*[.='PD1']")
node.InnerText = "value1"
Next
但是,如果您还需要在元素的文本值中替换它(例如<customer>PD1</customer>
),那么您需要更改XPath以查找属性或元素文本值:
Dim doc As New XmlDocument()
doc.LoadXml("...")
For Each node As XmlNode In doc.SelectNodes("//@*[.='PD1'] | //*[text()='PD1']")
node.InnerText = "value1"
Next