XMLエンベロープで囲まれたHTMLを返すWebサービスを呼び出します...次のようなもの:
<xml version="1.0" cache="false">
<text color="white">
<p> Some text <br /> <p>
</text>
</xml>
XmlPullParser を使用して、この XML/HTML を解析します。テキストを取得するには要素、私は次のことを行います:
case XmlPullParser.START_TAG:
xmlNodeName = parser.getName();
if (xmlNodeName.equalsIgnoreCase("text")) {
String color = parser.getAttributeValue(null, "color");
String text = parser.nextText();
if (color.equalsIgnoreCase("white")) {
detail.setDetail(Html.fromHtml(text).toString());
}
}
break;
これはうまく機能し、テキストまたはhtmlを取得しますいくつかの html タグが含まれている場合でも要素。
問題が発生するのは、要素のデータは、上記の例のように<p>タグで始まります。この場合、データは失われ、テキストは空になります。
どうすればこれを解決できますか?
編集
私のサービスの応答が実際には有効な XML ではなく、要素が適切に閉じられていないことを指摘してくれたNikとrajeshに感謝します。しかし、私はサービスを制御できないため、返されたものを編集できません。あらゆるタイプの不正な HTML を解析できる、または少なくとも html タグの内容を取得できるHTML Agilityのようなものがあるのだろうか..私の場合は<text> ... </text>内のように?? それもいいでしょう。
または、サービスから取得したものを解析するために使用できる他のものは、適切に実装できる限り有効です。
下手な英語ですみません