[英]Avoid Try n Catch when searching for XML nodes in XDocument
这是一种检查XDocument
文件中是否存在某些特定节点的方法。
显然,根据某些文档,它可能会遇到一些NullExceptions 。 (第 5,6 行)
您推荐什么方式,如何更改这段代码以避免使用 Try/Catch 而不会出现异常?
var xContents = xDocument.Root.Descendants("Content");
if (xContents.Any())
{
doesIncludeThat =
xContents.Any(e => e.HasAttributes && e.Name == "Content"
&& e.Attribute("Include").Value == @"Happy New Year");
...}}}
而不是使用e.Attribute(name).Value
如果属性不存在会给出 NullReferenceException ,您可以执行以下操作之一,在这种情况下两者都将返回 null :
e.Attribute(name)?.Value
或者
(string)e.Attribute(name)
后者使用 XAttribute 中定义的转换(转换)运算符之一,如果该属性不存在,它也会返回 null。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.