C# Linq到XML错误
我的Linq到XML查询有问题:C# Linq到XML错误,c#,xml,linq,C#,Xml,Linq,我的Linq到XML查询有问题: var q = (from f in xmlLang.Element("lang").Elements("page") where (string)f.Attribute("id") == "home" select f.Element(LangElement).Value.ToString()).Take(1).SingleOrDefault(); XML看起来像这样 <lang>
var q = (from f in xmlLang.Element("lang").Elements("page")
where (string)f.Attribute("id") == "home"
select f.Element(LangElement).Value.ToString()).Take(1).SingleOrDefault();
XML看起来像这样
<lang>
<page id="home">
<hello>Hello!</hello>
</page>
...
</lang>
你好
...
我得到这个错误:对象引用没有设置为对象的实例。f.Element(LangElement)应该做什么
- 您尚未在此代码段中的任何位置定义
LangElement
- 为了便于阅读,我会给
一个更具描述性的名称(比如,f
或其他什么)langpage
更简洁地说是.Take(1)。SingleOrDefault()
.FirstOrDefault()
var xmlLang = XDocument.Parse(@"
<lang>
<page id=""home"">
<hello>Hello!</hello>
</page>
...
</lang>");
var q = (from langpage in xmlLang.Element("lang").Elements("page")
where langpage.Attribute("id").Value == "home"
select langpage.Element("hello").Value).FirstOrDefault();
var xmlLang=XDocument.Parse(@)
你好
...
");
var q=(来自xmlLang.Element(“lang”).Elements(“页面”)中的langpage)
其中langpage.Attribute(“id”).Value==“home”
选择langpage.Element(“hello”).Value.FirstOrDefault();
如果以不同方式加载xmlLang,则您的查询可能与任何元素“lang”都不匹配,因此出现异常。您可能还应该向我们显示xmlLang变量的赋值。除此之外,我认为任何人回答你的问题的机会都很小,只能靠猜测运气。你可以使用First而不是Take(1)。SingleOrDefault()LangElement=string,比如“hello”。