我正在开发从html表中获取数据的软件。所以这一行:
team.SelectSingleNode(".//td[@class='number total won total_won']")?.InnerText.Trim();
返回:""
(我正在使用html agility pack进行DOM操作。)
完整的一行是这样的:
Convert.ToInt32(
team.SelectSingleNode(
".//td[@class='number total won total_won']")
?.InnerText.Trim());
这会返回一个异常(格式异常不正确)。
有什么想法解决这个问题吗?
答案 0 :(得分:3)
您可以使用int.TryParse
代替Convert.ToInt32
int myInt;
if(!int.TryParse(team.SelectSingleNode(".//td[@class='number total won total_won']")?.InnerText.Trim(), out myInt))
{
myInt = 0;
}
我知道,但我有30多行代码,所以我应该添加很多条件...... - Ilnumerouno刚才
您可以改为编写辅助方法。
public static class Converter{
public static int ConvertToInt(string stringAsInt){
int myInt;
return int.TryParse(stringAsInt, out myInt) ? myInt : 0;
}
}
致电代码。
var parsedInt = Converter.ConvertToInt(team.SelectSingleNode(".//td[@class='number total won total_won']")?.InnerText.Trim());