2016-07-27 117 views
0

我解析XML从网站。但在解析时,CDATA部分中的文本看起来不像常规文本。例如,文本包含字符“'”的’。我怎么解决这个问题?我如何正常解析CDATA部分的文本?我正在使用XmlPullParser。这里是我的XMLParser的:虽然我解析XML,但CDATA部分中的文本看起来不正常

List<Sozcu> sozcus; 
Sozcu sozcu; 
String text,text1; 

public XMLParser() { 
    sozcus = new ArrayList<Sozcu>(); 
} 

public List<Sozcu> getCountries() { 
    return sozcus; 
} 

public List<Sozcu> parse(InputStream inputStream){ 
    try{ 
     // HttpURLConnection connection =(HttpURLConnection) new URL(url).openConnection(); 
     // InputStream inputStream = connection.getInputStream(); 
     XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
     factory.setNamespaceAware(false); 
     XmlPullParser parser = factory.newPullParser(); 

     parser.setInput(inputStream,null); 
     int eventType = parser.getEventType(); 
     while (eventType != XmlPullParser.END_DOCUMENT){ 
      String tagName = parser.getName(); 
      switch (eventType){ 
       case XmlPullParser.START_TAG: 
        if(tagName.equalsIgnoreCase("item")){ 
         sozcu = new Sozcu(); 
        } 
        break; 
       case XmlPullParser.TEXT: 
        text = parser.getText(); 
        break; 
       case XmlPullParser.END_TAG: 
        if(tagName.equalsIgnoreCase("item")){ 
         //countries.add(country); 
         sozcus.add(sozcu); 
        }else if(tagName.equalsIgnoreCase("description")){ 
         // country.setRank(text); 

         sozcu.setDescription(text); 
        }else if(tagName.equalsIgnoreCase("link")){ 
         // country.setName(text); 
         sozcu.setLink(text); 
        }else if(tagName.equalsIgnoreCase("pubDate")){ 
         // country.setPopulation(text); 
         sozcu.setDate(text); 
        }else if(tagName.equalsIgnoreCase("title")){ 
         // country.setPopulation(text); 
         sozcu.setTitle(text); 
        }else{ 

        } 
        break; 
       default: 
        break; 
      } 
      eventType = parser.next(); 
     } 
    }catch (Exception e){ 
     e.printStackTrace(); 
    } 
    return sozcus; 
} 

这里是XML:<description><![CDATA[Balyoz davasından yargılanan Emekli Amiral Semih Çetin, CNNTÜRK&#8217;te Ahmet Hakan&#8217;ın sunduğu Tarafsız Bölge programına konuk oldu. Çetin programda, 15 Temmuz darbe girişimiyle ilgili dikkat çeken bir iddiayı paylaştı. &#160; &#8220;FETÖ&#8217;cülerin sözde darbe konseyi, &#8216;Yurtta Sulh&#8217;ta yer alan isimler açıklanmadan darbe girişimi bitti sayılmaz. İnsanlar ancak o zaman evine dönebilir&#8221; diyen Çetin, çarpıcı açıklamalar yaptı. Yurtta [&#8230;]]]></description> 请帮我

回答

1

它看起来HTML编码,你需要到html解码。

Html.fromHtml("YOUR STRING HERE").toString(); 
+0

它的工作原理!我是新的蜜蜂。你知道吗,我一直在网上搜索几个小时,找不到答案。非常感谢 –