用xml字符串中的值替换占位符的最佳方法

时间:2012-07-13 16:03:20

标签: xml vb.net c#-4.0

我有替换xml,它有占位符及其值。我有XML字符串,我需要搜索占位符并用值替换它。

例如,

占位符XML

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

XML

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

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

1 个答案:

答案 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
相关问题