当我解析XML时,CDATA部分中的文本似乎并不规则



我正在从一个网站解析xml。但是在解析时,CDATA部分中的文本看起来不像是常规文本。例如,文本包含’;用于字符"。我该如何解决这个问题?如何正常解析CDATA部分中的文本?我正在使用XmlPullParser。这是我的XMLParser:

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> 请帮助我

它看起来是html编码的,你需要对它进行html解码。

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

相关内容

  • 没有找到相关文章

最新更新