c# - 从 XML 中检索属性

标签 c# xml xmldocument selectnodes

为什么运行这段代码...

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/

相关文章:

c# - @bind 和 @bind-value 之间的区别

c# - 为什么我的 linq 别名超出范围?

javascript - 来自 PHP 的最新 XML 文件响应未加载到 Javascript 中

javascript - 是否可以使用 native javascript将mysql数据库转换为Json?

xml - 用 asp 解析 svg xml

c# - 在 C# 中更新 XML 节点值的最佳方法是什么?

c# - 如何在自己的方法中模仿string.Format()?

c# - 如何使用 Dapper 实现通用存储库设计模式?

c# - 强制将 XML 字符实体放入 XmlDocument 中

asp.net-mvc - 如何在MVC 4 Web Api中接收XmlDocument?