如何在android之间用HTML标签解析xml

时间:2012-02-06 14:48:55

标签: android xml-parsing html-parsing

大家好朋友我得到了一个包含大量内容的xml文件,我可以用解析解析内容,但问题是标签之间有html链接,而解析时我只得到html链接后的文本。链接前的文字丢失

对于ex我有一个标签

 <table> this is my text before html <a href="i got a link here">link</a> this is my text after link. 
 </table>

这里我得到了输出中的链接之后的文本,如何过来这个...提前感谢

3 个答案:

答案 0 :(得分:0)

其中一种方式:

String a = "<table> this is my text before html <a href=\"http://stackoverflow.com/questions/9161924/how-to-parse-xml-with-html-tags-in-between-android\">link</a> this is my text after link.  </table>";
String link = a.substring(a.indexOf("href=\"")+6,a.indexOf("\">"));
System.out.println(link);

希望它有所帮助。

答案 1 :(得分:0)

使用

XmlPullParser parser =...;
...
parser.getAttributeValue(null, "href");

获取属性。当然,您不能将它们作为文本或标记

答案 2 :(得分:0)

适用于我,因此您必须展示更多内容 - 例如,用于解析XML的代码或原始XML文档中的真实代码段 - 以便我们更有帮助。

与此同时,这是一个快速演示/示例,我运行以了解事情是如何运作的。我在一个名为String的固定DOCUMENT中有一个XML文档,其中包含以下内容:

<root>
  <element>
    <table>text before <a href="url">link</a> text after</table>
  </element>
  <element>
    free text
  </element>
</root>

一个非常简单的循环负责解析此文档,并在日志中显示解析器能够为每个元素提取的文本:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(DOCUMENT));
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
    if (eventType == XmlPullParser.START_DOCUMENT) {
        Log.d("XmlDemo", "Start document");
    } else if (eventType == XmlPullParser.START_TAG) {
        Log.d("XmlDemo", "Start tag: " + xpp.getName());
    } else if (eventType == XmlPullParser.END_TAG) {
        Log.d("XmlDemo", "End tag: " + xpp.getName());
    } else if (eventType == XmlPullParser.TEXT) {
        Log.d("XmlDemo", "Text: " + xpp.getText());
    }
    eventType = xpp.next();
}
Log.d("XmlDemo", "End document");

然后,在运行中,日志显示(以及其他)以下条目:

02-06 15:45:38.981: D/XmlDemo(371): Start tag: table
02-06 15:45:39.001: D/XmlDemo(371): Text: text before 
02-06 15:45:39.001: D/XmlDemo(371): Start tag: a
02-06 15:45:39.021: D/XmlDemo(371): Text: link
02-06 15:45:39.021: D/XmlDemo(371): End tag: a
02-06 15:45:39.041: D/XmlDemo(371): Text:  text after
02-06 15:45:39.041: D/XmlDemo(371): End tag: table

如您所见,解析器能够在链接之前和之后提取文本,尽管不是在单个操作中。