如,如果我有一个 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。
问题 - 这段代码有什么根本问题吗?为什么 SelectSingleNode 在第二个实例中没有按预期工作,就它而言,我在 Element 类型的 XmlNode 上执行它。
请协助。
非常感谢,