簡體   English   中英

在 XDocument 中搜索 XML 節點時避免 Try n Catch

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM