1

プレースホルダーとその値を持つ代替xmlがあります。プレースホルダーを検索して値に置き換える必要がある XML 文字列があります。

例えば、

プレースホルダー XML :

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

XML

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

「PD1」を値「value1」に置き換える最良の方法は何ですか?

4

1 に答える 1

0

XPath を使用してそれを行う 1 つの方法を次に示します。これにより、単一のプレースホルダーが正しい値に置き換えられます。プレースホルダーごとにループしてこれを 1 回実行する必要があります。これにより、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 に答える