2010-12-01 107 views
0

如果源XML包含數字或者標記丟失,以下鏈接語句可以正常工作。我遇到的問題是標籤爲空或者使用非數字值時。可以修改這個聲明來處理這些情況嗎?linq to xml,處理空標記

Convert.ToInt32((string)Data.Elements("groupBy").Elements("depth").FirstOrDefault() ?? "0") 

回答

1

不知道的方式使用LINQ來解決這個,但如果你不能保證XML文檔的內容,那麼將只使用int.TryParse()?例如,它會更容易

int result = 0; 
int.TryParse((string)Data.Elements("groupBy").Elements("depth").FirstOrDefault(), out result); 
0

我只想做:

try 
    int result = (int)Data.Elements("groupBy").Elements("depth").FirstOrDefault(); 
catch 
{ 
    // handle 
} 
+0

的問題是,這幾個命令創建一個對象(「選擇新的myClass的」語句的一部分),因此增加一個嘗試捕捉不會之一工作。我知道我沒有給出我的問題中的所有細節,因爲我想修改個別代碼行。 – Retrocoder 2010-12-02 09:01:34