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