Синтаксический анализ XML с пустыми атрибутами (Android)

1

У меня есть xml файл с такими атрибутами:

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

Я хочу, чтобы атрибут описания отображался как "null", но он заставляет закрывать и бросает главную строку FATAL Exception в LogCat.

У меня этот код ниже в методе 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 файла?

  • 0
    я использовал SaxParser здесь из примера на androidpeople.com
  • 0
    Ваша проблема недостаточно детализирована. что ты пытаешься сделать и почему, когда это заставляет закрыться?
Показать ещё 6 комментариев
Теги:

2 ответа

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
    Uggh. Ваша обработка исключений пояса и брекетов будет скрывать любые ошибки. Поймать исключение - зло ... просто не делай этого !!
  • 0
    это работает .. спасибо
Показать ещё 4 комментария
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()) {

(Я не уверен, что это исправит вашу проблему, потому что я не понимаю ваше описание проблемы.)

  • 0
    это тоже лучше ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню