Java Android中的HTML解析

Java Android中的HTML解析,java,android,html,parsing,Java,Android,Html,Parsing,这就是问题所在。我目前正在创建一个Android应用程序,它需要我解析一些html,以便我可以在应用程序屏幕上显示它 我不知道该怎么做,不知道你们能不能给我指出正确的方向或者给我一个好的向导 我想做的是遍历html代码并取出某些项目(特别是食物项目,您将在一分钟内看到)。我不想只是把这个人链接到网站上,或者使用webview在应用程序中显示网页,因为我个人觉得这样看起来不太好。我想做的是从html中提取食物项目,然后以字符串或其他形式将该部分放到我的应用程序中 -----下面是我正在使用的网站上

这就是问题所在。我目前正在创建一个Android应用程序,它需要我解析一些html,以便我可以在应用程序屏幕上显示它

我不知道该怎么做,不知道你们能不能给我指出正确的方向或者给我一个好的向导

我想做的是遍历html代码并取出某些项目(特别是食物项目,您将在一分钟内看到)。我不想只是把这个人链接到网站上,或者使用webview在应用程序中显示网页,因为我个人觉得这样看起来不太好。我想做的是从html中提取食物项目,然后以字符串或其他形式将该部分放到我的应用程序中

-----下面是我正在使用的网站上的一些html供参考------

在此处输入代码

------结束html-------

所以我只想提取“谷物热粒”和“煎饼酪乳”这两个词


谢谢你的帮助

这可能不是最有效的方法,但是如果您获取HTML源代码并将其放入字符串中,然后以这种方式逐行解析。每当你用
打一行时,简单:你应该使用这个库。

至少有两种合理的方法

1) 使用真正的HTML解析器。(@you786建议)我最熟悉Jsoup,但是@commonware提到了其他一些链接。然后系统地遍历HTML树以找到所需内容。如果HTML的格式和结构合理,并且随着时间的推移保留了这种形式和结构,那么这种方法效果最好

2) 只要“跳”到你想要的。(@Odiefrom建议这样做)在您的示例中,搜索(使用String.indexOf())以查找
“,我建议,我已经在一些android项目中使用过它,它非常可靠,我对此没有任何抱怨

正如JSoup网站上的示例所示:

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
您可以使用
select()
提取所需的任何数据

请特别注意,从上面的示例中,您似乎只需要食品名称,因此您可以使用以下内容从
标签中获取它们:

Elements resultLinks = doc.select("a");

另一个技巧是,在创建
文档之后插入一个断点,然后在IDE中使用expression builder四处搜索并确定需要哪些元素。

可能重复@Commonware Wow,这是一个非常有趣的咆哮。XML的坏处有类似的吗?@user949300:我不知道。Th在StackOverflow,用RegexnRant(又称“无法容纳”)解析HTML是一个传奇。很抱歉,后来接受了这个答案。不过帮了我很大的忙!
Elements resultLinks = doc.select("a");