你如何在android中解析HTML?

时间:2011-08-18 21:20:05

标签: android html xml parsing

我正在为android制作一个应用程序,该应用程序功能的一个元素是返回来自在线搜索库目录的结果。应用程序需要以与应用程序其余部分保持一致的方式显示搜索结果,该搜索结果通过自定义HTML表单执行。即,需要解析搜索结果并显示有用的元素。我只是想知道是否/如何在Android中实现这一点?

3 个答案:

答案 0 :(得分:15)

您将使用Html Parser。我使用和工作得很好的一个是JSoup 这是您需要从解析html开始的地方。 Apache Jericho也是另一个好的。

您将使用DOM检索html文档,并使用JSOUP Select()方法选择您想要获取的任何标记。通过标签,ID或类。

<强>解决方案

Use the: Jsoup.connect(String url) method:

 Document doc = Jsoup.connect("http://example.com/").get();

这将允许您使用URL连接到html页面。并将其存储为Document doc,通过DOM。并使用selector()方法从中读取。

<强>描述

  

connect(String url)方法创建一个新的Connection,并且get()   获取并解析HTML文件。如果在获取时发生错误   URL,它将抛出一个IOException,你应该处理它   适当。

     

Connection接口专为方法链构建而设计   具体要求:

 Document doc = Jsoup.connect("http://example.com")

如果您仔细阅读Jsoup的文档,您应该能够实现这一目标。

编辑:以下是如何使用选择器方法

  //Once the Document is retrieved above, use these selector methods to Extract the   data you want by using the tags, id, or css class 

  Elements links = doc.select("a[href]"); // a with href
  Elements pngs = doc.select("img[src$=.png]");
  // img with src ending .png

  Element masthead = doc.select("div.masthead").first();
  // div with class=masthead

  Elements resultLinks = doc.select("h3.r > a"); // direct a after h3

编辑:使用JSOUP,您可以使用它来获取属性,文本,

Document doc = Jsoup.connect("http://example.com")
Element link = doc.select("a").first();

String text = doc.body().text(); // "An example link"
String linkHref = link.attr("href"); // "http://example.com/"
String linkText = link.text(); // "example""

String linkOuterH = link.outerHtml(); 
// "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"

答案 1 :(得分:4)

您可以使用XmlPullParser来解析XML。

例如参考http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html

答案 2 :(得分:0)

由于搜索结果是HTML和HTML是标记语言(ML),您可以使用Android的XmlPullParser来解析结果。