2010-12-01 63 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