【问题标题】:Querying xml returns null when using Linq to XML使用 Linq to XML 查询 xml 返回 null
【发布时间】:2011-05-13 21:56:36
【问题描述】:

我在一个文件中有以下 xml:

<Person>
    <Name first="John" last="Doe" />
</Person>

我使用 XDocument.Load 加载了 xml 文档,但我似乎无法获取第一个和最后一个属性的值。

我试过了:

var q = from n in rq.Element("Name")
        select n;  //but q is null after this.

【问题讨论】:

  • 它甚至可以编译吗? Element 方法返回一个不可枚举(或可查询)的 XElement,因此 LINQ 表达式应该无法编译。我猜你的意思是元素方法(复数)。

标签: c# linq-to-xml


【解决方案1】:

这是一个适用于您的 XML 文件的示例:

var doc = XDocument.Load(...);

var query = from node in doc.Root.Elements("Name")
            select new           //      ↑
            {
                First = (string)node.Attribute("first"),
                Last  = (string)node.Attribute("last")
            };

foreach (var item in query)
{
    Console.WriteLine("{1}, {0}", item.First, item.Last);
}

【讨论】:

  • 我认为它正在编译,但我在做 doc.Element 而不是 doc.Root.Elements。
  • 如何从查询中获取第一个和最后一个属性的值?我尝试了 query.Select(x=>x.first),但这不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-02
  • 1970-01-01
相关资源
最近更新 更多