为什么XDocument元素始终为null

本文关键字:null XDocument 元素 为什么 | 更新日期: 2023-09-27 18:02:57

我有以下代码

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,不确定我缺少了什么。

为什么XDocument元素始终为null

在比较密钥时,您希望使用.Value而不是.ToString()

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

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

您正在查找Key属性的

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