为什么XDocument Elements始终为null

时间:2011-07-19 03:19:47

标签: c# linq-to-xml xelement

我有以下代码

const string xml = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
                            <Revisions>
                                <Revision Key=""MIDTERM"">5850</Revision>
                                <Revision Key=""LONGTERM"">5850</Revision>
                            </Revisions>";
        var key = "MIDTERM";
        var _RevisionsXml = XDocument.Parse(xml, LoadOptions.PreserveWhitespace);
        var revisionNode = _RevisionsXml
                                .Root
                                .Elements("Revision")
                                .FirstOrDefault(elem => elem.Attribute("Key").ToString() == key);

revisionNode始终为null,不确定我缺少的是什么。

2 个答案:

答案 0 :(得分:2)

比较密钥时,您希望使用.Value代替.ToString()

在属性上调用ToString()将返回Key="MIDTERM",这主要用于调试目的。

如果没有名为NullReferenceException的属性,请确保您的XML格式正确,或者在调用.Value时可能会遇到Key

答案 1 :(得分:1)

您正在寻找Key属性的

var revisionNode = _RevisionsXml
                        .Root
                        .Elements("Revision")
                        .FirstOrDefault(elem => (string)elem.Attribute("Key") == key);