次のようなファイルがあるとします。
<outer>
<inner>
<nodex attr="value1">text</attr>
<nodex attr="value2">text</attr>
</inner>
</outer>
基本的に私がやりたいことは、C#(ここでは.net 2.0に制限されています)で、これ(疑似コード)です:
foreach node
if(node eq 'nodex')
update attr to newvalue
完了すると、xml ファイル (ディスク上) は次のようになります。
<outer>
<inner>
<nodex attr="newvalue1">text</attr>
<nodex attr="newvalue2">text</attr>
</inner>
</outer>
これらの 2 つはわずかに有望に見えます。
しかし、彼らが実際に私の質問に答えているかどうかは不明です。
その間、私はこのコードを書きました:
動作するより最小限のケースを次に示します。
public static void UpdateXML()
{
XmlDocument doc = new XmlDocument();
using (XmlReader reader = XmlReader.Create("XMLFile1.xml"))
{
doc.Load(reader);
XmlNodeList list = doc.GetElementsByTagName("nodex");
foreach (XmlNode node in list)
{
node.Attributes["attr"].Value = "newvalue";
}
}
using (XmlWriter writer = XmlWriter.Create("XMLFile1.xml"))
{
doc.Save(writer);
}
}