2012-07-13 49 views
1

我有置換xml,它具有佔位符及其值。我有XML字符串,我需要搜索佔位符並將其替換爲值。在xml中用值替換佔位符的最佳方法

例如,

佔位符XML

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

XML

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

什麼是取代 「PD1」 與價值 「VALUE1」 的最佳方式?

回答

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 
+0

謝謝。 node.InnerText將「PD1」更新爲「value1」?是否更新屬性值或將值設置爲內部文本? – user1186065 2012-07-13 17:14:39

+0

在這種情況下,更新屬性的值,因爲'node'是屬性節點,而不是元素節點。 – 2012-07-13 17:46:25

+0

這就是我想要的。謝謝。如果在xml元素中搜索字符串,例如 PD1,那麼也會返回xml元素? – user1186065 2012-07-13 18:09:24

相關問題