为什么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,不确定我缺少了什么。
在比较密钥时,您希望使用.Value
而不是.ToString()
。
调用属性上的ToString()
会返回Key="MIDTERM"
,主要用于调试。
请确保您的XML格式正确,或者如果没有名为Key
的属性,则在调用.Value
时可能会遇到NullReferenceException
。
您正在查找Key属性的值:
var revisionNode = _RevisionsXml
.Root
.Elements("Revision")
.FirstOrDefault(elem => (string)elem.Attribute("Key") == key);