2016-07-27 4 views
0

웹 사이트에서 xml을 구문 분석하고 있습니다. 그러나 파싱하는 동안 CDATA 섹션의 텍스트는 일반 텍스트처럼 보이지 않습니다. 예를 들어 문자 " '"의 텍스트는 ’입니다. 이 문제를 어떻게 해결할 수 있습니까? 어떻게 CDATA 섹션의 텍스트를 정상적으로 파싱 할 수 있습니까? 나는 XmlPullParser를 사용하고있다. <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로 필요 보인다XML을 파싱하는 동안 CDATA 섹션의 텍스트가 규칙적으로 보이지 않습니다.

답변

1

도와주세요 :

여기
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입니다 : 여기 내 XmlParser가있다.

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

작동합니다! 나는 새로운 꿀벌이야. 당신은 무엇을, 나는 몇 시간 동안 인터넷에서 수색하고 그 대답을 찾아 낼 수 없었다는 것을 알고있다. 정말 고맙습니다 –