2016-02-17 5 views
0

Так что у меня есть файл в папке моих папок, в которой я читаю. Я читаю его без ошибок. Но вот пример записи или элемента в XML-файле. (Я вынул реальные ценности и положить поддельные данные)Как обрабатывать xml с пустым тегом в android ?? Нравится <pager/>

<record> 
    <group> MYGROU </group> 
    <name> Person </name> 
    <title> (MG1217) LEADER </title> 
    <businessphone> 111-111-1111 </businessphone> 
    <pager/> 
    <email> email.org </email> 
    <managername> BOSS </managername> 
    <managerbusinessphone> 1919191919 </managerbusinessphone> 
    <managerpager/> 
    <manageremail> email.org </manageremail> 
</record> 

В любом случае, я создал объект и прочитал все правильно, за исключением случаев, таких как Пейджер и managerpager исключением. Вот что читается или я думаю, что читается как значение из xml.

V/value of pager after set Text﹕ [ 02-17 12:16:25.476 17462:17462 D/Activity ] 
performCreate Call secproduct feature valuefalse 

В идеале, что я хочу сделать, это установить значение Пейджер для N/A, так как нет никакого значения в XML для него. Но я не уверен, как это сделать, поскольку я не очень ценю всякий раз, когда разбираю его. Я попытался взять подстроку этой строки, которую я распечатываю, но я не могу взять подстроку.

Вот как я беру subsring и то, что он печатает

подстроки и как я пытался установить значение N/A в TextView я создал (mOnCallPager).

Log.v("substring value of pager ", item.getMpager().substring(0,5)); 

    if(item.getMpager().substring(0,2).equals(" [")) 
    { 
     mOnCallPager.setText("N/A"); 
    } 
    else 
     mOnCallPager.setText(item.getMpager()); 

Значение он печатает

02-17 12:29:43.516 22838-22838/com.example.jaimejahuey.novanthealthmobile V/substring value of pager﹕ [ 02-17 12:29:43.516 22838:22838 D/Activity ] 
performCreate Call secproduct feature valuefalse 

Любая помощь будет полезна. Thanks

Heres мой анализ xml.

     switch (evenType) 
       { 
        //make a new contact whenever the startag is record 
        case XmlPullParser.START_TAG: 
         if(tagname.equalsIgnoreCase("record")) 
         { 
          contact = new OnCallContact(); 
         } 
         break; 


        case XmlPullParser.TEXT: 
         text = parser.getText(); 
         break; 



        case XmlPullParser.END_TAG: 
         if(tagname.equalsIgnoreCase("record")) 
         { 
          contacts.add(contact); 
         } 
         else if (tagname.equalsIgnoreCase("group")) 
         { 
          contact.setMgroup(text); 
         } 
         else if (tagname.equalsIgnoreCase("name")) 
         { 
          contact.setMname(text); 
         } 
         else if (tagname.equalsIgnoreCase("title")) 
         { 
          contact.setMtitle(text); 
         } 
         else if (tagname.equalsIgnoreCase("businessphone")) 
         { 
          contact.setMbusinessPhone(text); 
         } 
         else if (tagname.equalsIgnoreCase("pager")) 
         { 
          contact.setMpager(text); 
         } 
         else if (tagname.equalsIgnoreCase("email")) 
         { 
          contact.setMemail(text); 
         } 
         else if (tagname.equalsIgnoreCase("managername")) 
         { 
          contact.setmManagerName(text); 
         } 
         else if (tagname.equalsIgnoreCase("managerbusinessphone")) 
         { 
          contact.setmManagerBusinessPhone(text); 
         } 
         else if (tagname.equalsIgnoreCase("managerpager")) 
         { 
          contact.setmManagerPager(text); 
         } 
         else if (tagname.equalsIgnoreCase("manageremail")) 
         { 
          contact.setmManagerEmail(text); 
         } 
         break; 
        default: 
         break; 
       } 
       evenType = parser.next(); 
      } 

ответ

0

Просто у кого-нибудь есть эта проблема, это пробел, который парсер будет захватывать. Шахта была 9 в длину. Таким образом, это было больше, чем просто одиночное пространство. В любом случае, если вы не получите нуль при захвате значения, вы, скорее всего, захватите пробелы, как я. (Обрезать при чтении в тексте, так что длина пустых тегов равна 0 и делать все, что вам нужно делать с пустыми тегами)