我是LINQ to XML世界的新手。 我试图在Credential
的domain
属性为“NetworkID”时仅检索Identity
的值。 这是我正在测试的代码:
XML片段:
<Sender>
<Credential domain="NetworkID">
<Identity>MyIdentity</Identity>
<SharedSecret>MySharedSecret</SharedSecret>
</Credential>
<UserAgent>MyUserAgent</UserAgent>
</Sender>
C#:
var credential = xdoc.Descendants("Sender")
.Elements("Credential")
.Where(x => x.Attribute("domain").Value == "NetworkID").FirstOrDefault()
.Descendants("Identity").FirstOrDefault();
问题:
显然,如果找不到Credential
节点,则LINQ查询将生成一个错误,因为我在null
上调用.Descendants()
。
是否可以编写查询,以便如果未找到任一元素,则返回Identity
或null
?