在做android&webservice项目的时候碰到ksoap2解析XML文件因缺少字段导致报错的问题.后来发现问题是由webservice中dataset里该字段有null值导致的。因为dataset中有null值,所以生成XML时,相应的字段就不能生成相应的节点。在无法联系酷哥的情况下,只能去请教度娘了。不知道是用android连dot net webservice方式少有人用,还是这种问题太简单,网上很少有相关的文章。找了很久,解决方法大致有两种,一种是修改XML的生成规则,另一种是自己写代码把null值去掉。
第一种方法可参考http://blog.csdn.net/yusewuhen/article/details/44150833,我个人觉得这种方法继承性不好,所以不推荐。我用第二种方法,自己写方法去null值去掉。刚开始我是在select时,就用isnull(column,”)来处理,但在字段多的情况下,这种方法太累人。后来我还是写了个方法来处理。代码如下:
[WebMethod]
public DataSet KillDatasetNull(DataSet adt_dt)
{
if (adt_dt.Tables[0].Rows.Count > 0