【发布时间】:2011-12-18 18:32:28
【问题描述】:
很抱歉用这么简单的问题打扰你,但我被困在这里已经一个小时了:
我有一个看起来像这样的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<aaa xmlns="http://blabla.com/xmlschema/v1">
<bbb>
<ccc>Foo</ccc>
</bbb>
<ddd x="y" />
<ddd x="xx" />
<ddd x="z" />
</aaa>
我正在尝试像这样访问元素“ddd”:
var doc = new XmlDocument();
doc.Load("example.xml");
foreach (XmlNode dddNode in doc.DocumentElement.SelectNodes("//ddd"))
{
// do something
Console.WriteLine(dddNode.Attributes["x"].Value);
}
在运行时会跳过 foreach 循环,因为我没有从 .SelectNodes 方法返回任何节点。我在循环之前中断并查看了 InnerXML,看起来不错,我还尝试了各种 XPath(如“//bbb”或“/aaa/ddd”),但只有“/”似乎没有返回空。
这个确切的代码以前对我有用,现在不行了。我怀疑 aaa 标记中的命名空间声明有什么问题,但我不明白为什么这会导致问题。或者..你能看到我可能遗漏的任何东西吗?
【问题讨论】: