2014-02-21 53 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; 
    } 

} 

回答