2010-01-13 111 views
2

我有我正在查詢的xml。其中一個節點丟失。所以當我調用XElement.Value時,我得到一個空的異常。處理XElement空值

防止這種情況的最好方法是什麼?我知道我可以寫一個擴展方法,但我想知道是否有一些東西內置於此語言中?

回答

6

使用空COALESCE操作??

給定一個XElement ELEM:

var value = (string)elem ?? "empty"; 
+4

這是正確的答案,但值得指出的是,這裏最重要的一點是真的'XElement'的顯式轉換如果輸入爲null,則字符串將返回null - 而'element.Value'將引發異常。 – 2010-01-13 14:34:24

+1

因此假設XElement爲空。 string myvalue =(string)XElement;將有myvalue爲空? string myvalue = XElement.Value;會拋出異常。字符串myvalue =(字符串)XElement ?? 「空」;會給我的價值「空」? – zachary 2010-01-13 15:28:58