我是新来的LINQ to XML世界。我正在尝试检索Identity
的值,但仅在Credential
的domain
属性为“NetworkID”时才有效。下面是我与测试代码:XDocument遍历
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查询将会l产生错误,因为我打电话.Descendants()
上null
。
是否可以编写查询以便返回Identity
或null
如果找不到任何元素?