2014-02-21 55 views
0

我已經通過XmlPullParser做XML解析,直到我到我的XML文件中添加特殊字符,如S,C,R,Z等它工作正常。它用「?」替換字符標誌。有沒有辦法擺脫那個?XmlPullParser查看特殊字母字符

這裏是我的XML解析器類:

public class ClubsXmlPullParser { 

    static final String CLUB = "club"; 
    static final String NAME = "name"; 
    static final String ABOUT = "about"; 
    static final String STADIUM = "stadium"; 
    static final String LOGO = "logo"; 
    static final String MOREABOUT = "moreAbout"; 

    public static List<LeagueClub> getItemsFromFile(Context ctx) { 


     List<LeagueClub> clubs; 
     clubs = new ArrayList<LeagueClub>(); 


     LeagueClub curItem = null; 

     String curText = ""; 

     try { 

      XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
      XmlPullParser xpp = factory.newPullParser(); 


      FileInputStream fis = ctx.openFileInput("clubs.xml"); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(fis)); 


      xpp.setInput(reader); 


      int eventType = xpp.getEventType(); 


      while (eventType != XmlPullParser.END_DOCUMENT) { 

       String tagname = xpp.getName(); 


       switch (eventType) { 
       case XmlPullParser.START_TAG: 
        if (tagname.equalsIgnoreCase(CLUB)) { 
         curItem = new LeagueClub(); 
        } 

        break; 

       case XmlPullParser.TEXT: 

        curText = xpp.getText(); 
        break; 

       case XmlPullParser.END_TAG: 
        if (tagname.equalsIgnoreCase(CLUB)) { 

         clubs.add(curItem); 
        } else if (tagname.equalsIgnoreCase(NAME)) { 

         curItem.setName(curText); 
        } else if (tagname.equalsIgnoreCase(ABOUT)) { 

         curItem.setAbout(curText); 
        } else if (tagname.equalsIgnoreCase(STADIUM)) { 

         curItem.setStadium(curText); 
        } else if (tagname.equalsIgnoreCase(LOGO)) { 

         curItem.setLogo(curText); 
        } else if (tagname.equalsIgnoreCase(MOREABOUT)) { 

         curItem.setName(curText); 
        } 



        break; 

       default: 
        break; 
       } 

       eventType = xpp.next(); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


     return clubs; 
    } 

} 

回答