1

我有具有占位符及其值的替换 xml。我有 XML 字符串,我需要在其中搜索占位符并将其替换为值。

例如,

占位符 XML

<PlaceHolders>
  <PlaceHolder placeholder="PD1" value="value1" />
</PlaceHolders>

XML

<customers>
  <customer avatarURL="PD1"/>
</customers>

用值“value1”替换“PD1”的最佳方法是什么?

4

1 回答 1

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
于 2012-07-13T16:46:14.863 回答