如何解析HTML标记XML中的Android
问题描述:
喜的朋友之间我买了很多内容的XML文件,我能够解析与拉解析的内容,但问题是有HTML链接在标签之间和在解析我只能在html链接后获得文本。链接前的文本丢失如何解析HTML标记XML中的Android
为前我有一个标签
<table> this is my text before html <a href="i got a link here">link</a> this is my text after link.
</table>
在这里,我得到的输出链接后的文字,如何在走到这一步......在此先感谢
答
的方式之一:
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);
希望它帮助。
答
使用
XmlPullParser parser =...;
...
parser.getAttributeValue(null, "href");
采取属性。当然,你不能把它们当成文本或标签
答
为我工作,所以你必须表现出更多的东西 - 你正在使用解析XML,或者从原始的XML文档真正的片断代码,例如 - 为了让我们更有帮助。
在此期间,这里是一个快速演示/例子,我跑,看看事情如何工作的。我有一个固定的String
的XML文档称为DOCUMENT
包含以下内容:
<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
正如你看到的,PA rser能够在链接之前和之后提取文本,尽管不是在单个操作中。
正则表达式,子...的indexOf( “HREF”)......? – 2012-02-06 14:56:53
如果您解析HTML(如“野生”遇到的)我建议你试着像JSoup - 人虐待HTML比红头继子女更多。 – Jens 2012-02-06 15:46:27