たとえば、XML ドキュメントがある場合
<root a="value">
<item name="first">
x
<foo name = "firstgrandchild">There is nothing here</foo>
y
<foo name = "secondgrandchild">There is something here</foo>
</item>
<item name="second">
xy
<foo/>
ab
</item>
</root>
最初にノード「item」の最初の出現を見つけてから属性を更新し、次にノード「foo」の最初の出現を更新してから属性を更新したいなど、
私のコードは以下の通りです
myDoc.Load("Items2.xml");
myNode = myDoc.DocumentElement;
mySearchNode = myNode.SelectSingleNode("/root/item");
mySearchNode.Attributes["name"].Value = "Joel";
Console.WriteLine(mySearchNode.OuterXml);
mySearchChildNode = mySearchNode.SelectSingleNode("/item/foo");
Console.WriteLine(mySearchChildNode.OuterXml);
属性の最初の検索と更新は正常に機能しますが、mySearchNode.SelectSingleNode が null を返すため、2 番目の検索と更新は失敗します。
質問 - このコードに根本的に間違っている点はありますか? SelectSingleNode が 2 番目のインスタンスで期待どおりに機能しないのはなぜですか。これに関する限り、Element 型の XmlNode で実行しています。
よろしくお願いします。
どうもありがとう、