2011-08-18 44 views
4

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

回答

13

你会使用一个Html解析器。一个我使用和工作得很好的是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页面。并通过DOM将其存储为Document文档。并使用selector()方法从它读取。

说明

的连接(字符串URL)方法创建一个新的连接,并得到() 取和解析HTML文件。如果在获取 URL时发生错误,则会抛出IOException,您应该适当地处理 。

连接接口是专为法链打造 具体要求:

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>" 
+0

让我知道,如果这有助于 – yoshi24

0

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