我有具有占位符及其值的替换 xml。我有 XML 字符串,我需要在其中搜索占位符并将其替换为值。
例如,
占位符 XML:
<PlaceHolders>
<PlaceHolder placeholder="PD1" value="value1" />
</PlaceHolders>
XML
<customers>
<customer avatarURL="PD1"/>
</customers>
用值“value1”替换“PD1”的最佳方法是什么?
这是使用 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