C# 使用XDocument遍历XML文件将返回不带属性的元素

C# 使用XDocument遍历XML文件将返回不带属性的元素,c#,xml,C#,Xml,我正在遍历此XML文件的所有子元素: <?xml version="1.0" encoding="utf-8"?> <users> <user name="SemiViral" access="2" /> </users> 但是WriteLine的输出是0,如果我尝试直接引用属性,输出同样为空。计算子元素返回1,当我向单个子元素添加内部内容时,它能够输出这些内容。因此,我知道它是正确的元素,它只是因为某种原因而不访问属性。下面是一段代码,

我正在遍历此XML文件的所有子元素:

<?xml version="1.0" encoding="utf-8"?>
<users>
    <user name="SemiViral" access="2" />
</users>

但是
WriteLine
的输出是
0
,如果我尝试直接引用属性,输出同样为空。计算子元素返回
1
,当我向单个子元素添加内部内容时,它能够输出这些内容。因此,我知道它是正确的元素,它只是因为某种原因而不访问属性。

下面是一段代码,用于执行您试图执行的操作。您没有得到结果,因为您只查找
用户
元素(
文档子体(“用户”)
)。您要查找的元素位于xml的下一个级别。如果你调试了你的代码,你就会发现它

            XDocument doc = XDocument.Load("Users.xml");

            Console.WriteLine(doc.Descendants("users").Descendants().Count());

            foreach (XElement u in doc.Descendants("users").Descendants())
            {
                Console.WriteLine("value of the attribute is " + u.Attributes("access").First().Value);
            }

下面是一段代码,用于执行您正在尝试执行的操作。您没有得到结果,因为您只查找
用户
元素(
文档子体(“用户”)
)。您要查找的元素位于xml的下一个级别。如果你调试了你的代码,你就会发现它

            XDocument doc = XDocument.Load("Users.xml");

            Console.WriteLine(doc.Descendants("users").Descendants().Count());

            foreach (XElement u in doc.Descendants("users").Descendants())
            {
                Console.WriteLine("value of the attribute is " + u.Attributes("access").First().Value);
            }

你试过调试这个吗?这是很明显的。我有一段时间没睡觉了,而且我是C#的初学者。如果这是显而易见的,我很抱歉,但是我已经考虑了一个小时,没有得到我下面的答案。你试过调试这个吗?这是很明显的。我有一段时间没睡觉了,而且我是C#的初学者。如果这是显而易见的,我很抱歉,但是我已经考虑了一个小时,没有找到我下面的答案。我使用的是System.Xml.Linq和
Newtonsoft.Json.Linq
,第二个
.genderant()
导致了歧义冲突<代码>以下方法或属性之间的调用不明确:“Newtonsoft.Json.Linq.Extensions.substands(System.Collections.Generic.IEnumerable)”和“System.Xml.Linq.Extensions.substands(System.Collections.Generic.IEnumerable)”为什么要使用Json.Linq?您只需要System.Linq和System.Xml.LinqManaging数据,这些数据来自应用程序中其他地方的GET请求;它以JSON格式接收。这一位用于用户存储,为了简单起见,我想用XML进行存储。我不知道会发生这个问题。一节课是为了一件事。当你试图在同一个类中做太多事情时,就会发生这种情况。谢谢你的帮助。我正在使用System.Xml.Linq和
Newtonsoft.Json.Linq
,而第二个
.genderant()
会引起歧义冲突<代码>以下方法或属性之间的调用不明确:“Newtonsoft.Json.Linq.Extensions.substands(System.Collections.Generic.IEnumerable)”和“System.Xml.Linq.Extensions.substands(System.Collections.Generic.IEnumerable)”为什么要使用Json.Linq?您只需要System.Linq和System.Xml.LinqManaging数据,这些数据来自应用程序中其他地方的GET请求;它以JSON格式接收。这一位用于用户存储,为了简单起见,我想用XML进行存储。我不知道会发生这个问题。一节课是为了一件事。当你在同一堂课上尝试做太多事情时,就会发生这种情况。谢谢你的帮助。