如何使用c#中的lambda表达式检测元素是否存在?

Edw*_*ard 5 c# xml linq lambda linq-to-xml

我一直在使用try/catch语句来解析当我解析它时元素是否存在.显然,这不是最好的方法.我一直在使用LINQ(lambda表达式)进行大部分解析,但我只是不知道如何检测元素是否存在.

我发现一些解决方案的一个大问题是它们使用的代码比使用try/catch块的代码多3-4倍,这种方法会失败.

我会假设代码看起来像这样:

if(document.Element("myElement").Exists())
{
   var myValue = document.Element("myElement").Value;
}
Run Code Online (Sandbox Code Playgroud)

我确实找到了这个链接,但在我的情况下循环是不必要的,因为我可以保证它只会出现一次.此外,必须创建一个似乎不必要的虚拟元素.看起来不是检查的最佳方式(或好方法).有任何想法吗?

Joe*_*uso 4

XElement e = document.Element("myElement");
if (e != null)
{
    var myValue = e.Value; 
}
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/system.xml.linq.xcontainer.element.aspx

“获取具有指定 XName 的第一个(按文档顺序)子元素。”

“如果不存在具有指定名称的元素,则不返回任何内容。”