使用空属性进行XML解析(Android)

时间:2011-12-12 06:52:52

标签: java android xml

我有一个xml文件,其属性如下:

  <folder name = 'somename' description = ''/>

我想将description属性显示为'null'但强制关闭并在LogCat中抛出FATAL Exception main。

我在startElement()方法下面有这段代码

   if (localName.equalsIgnoreCase("folder")) {
      /** Get attribute value */
      if(attributes.getValue("description")== "null"){
         parseList.setFolderdesc(null);
      }else{
         String desc = attributes.getValue("description");                   
         parseList.setFolderdesc(desc);
      } 

我尝试了这段代码,但没有运气...... 如何在不更改我的xml文件的情况下解决这个问题?

2 个答案:

答案 0 :(得分:1)

尝试使用以下代码

String desc = null;
        try{
        desc = attributes.getValue("description");
        if((desc == null) || (desc.length()<=0)){
            desc = null;    
        }
        }catch(Exception ex){
            desc = null;
        }
if(parseList != null){
parseList.setFolderdesc(desc);  
}

答案 1 :(得分:1)

此代码无法满足您的期望:

  if (attributes.getValue("description") == "null") {

您正在将属性值与字符串"null"进行比较,而不是使用java null进行比较。 (而且你也在测试不安全的字符串!使用String.equals()而不是==运算符来测试字符串的相等性。)

该测试应写成如下:

  if (attributes.getValue("description") == null) {

或更好:

  if (attributes.getValue("description") == null || 
      attributes.getValue("description").isEmpty()) {

(我不确定这是否能解决你的问题,因为我不明白你的问题描述。)