我在使用XMLReader在C#中解析XML时遇到了问题。
以下是一个例子:
string text = xNode.ReadElementContentAsString().Length > 0 ? xBonusesNode.ReadElementContentAsString() : null;
int nmb = xNode.ReadElementContentAsInt();
所以,在我试图获取字符串值的地方,有一个简单的内联if语句来检查元素是否有数据。
我怎么能用整数做类似的事情?或者如何以最佳方式正确捕获异常,为此?
答案 0 :(得分:1)
您可以像这样使用int.TryParse:
int number;
bool result = Int32.TryParse(xNode.ReadElementContentAsString, out number);
答案 1 :(得分:1)
string text = xNode.ReadElementContentAsString().Length > 0 ? xBonusesNode.ReadElementContentAsString() : null;
Int32.TryParse(text,out myInt);
应该工作。
我不确定xml库是否支持可空类型(int?)但是上面应该仍然可以工作 - 基本上我是把它作为字符串读取然后尝试解析它。如果TryParse失败,myInt将保持原样(并且tryParse返回'false')