为什么运行这段代码...
XmlDocument doc = new XmlDocument();
string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
<BaaBaa>
<BlackSheep HaveYouAny=""Wool"" />
</BaaBaa>";
doc.LoadXml(xml);
XmlNodeList nodes = doc.SelectNodes("//BaaBaa");
foreach (XmlElement element in nodes)
{
Console.WriteLine(element.InnerXml);
XmlAttributeCollection attributes = element.Attributes;
Console.WriteLine(attributes.Count);
}
在命令提示符中产生以下输出?
<BlackSheep HaveYouAny="Wool" />
0
也就是说,attributes.Count
不应该返回 1 吗?
最佳答案
当您调用SelectNodes
时对于“//BaaBaa”,它返回“BaaBaa”的所有元素。
正如您从自己的文档中看到的,BaaBaa 没有属性,它是具有单个属性“HaveYouAny”的“BlackSheep”元素。
如果您想获取子元素的属性计数,则必须在迭代节点时从您所在的节点导航到该子元素。
关于c# - 从 XML 中检索属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2285530/