【问题标题】:How do I pick selective html content in my webview in android?如何在 android 的 webview 中选择选择性的 html 内容?
【发布时间】:2015-04-30 14:44:21
【问题描述】:

我目前正在尝试从我的网页视图中的 html 内容导入选择性标题。我正在研究各种各样的选项,例如 json 解析或任何 hack 都可以。我想知道是否有人对此有过经验或对如何进行此操作有一个简短的想法? 这是我的例子: 这是我的 html 文件内容:

<div><h1><span class = "headline"> Some depressing title </span> <span class = "source" > ABCD </span> </h1> <br/> <span class = "body"> crappy body content which I do not need </span></div>

我只想在我的 webview 中从这个 html 中检索“标题”和“来源”,没有别的(不是正文)。我如何去定义一个参数来检索这些?关于如何做的任何线索?

谢谢!

【问题讨论】:

  • @xaver kapeller 有什么地方可以给你发消息吗?
  • 你为什么要给我发消息?
  • 只要有充分的理由我可以给你联系方式。但对于初学者,我建议进行私人/画廊 Stack Overflow 聊天。
  • 我如何进行画廊聊天?什么时候是聊天的好时机?
  • 我现在有时间,但首先你想谈什么?

标签: android android-webview android-json android-webservice


【解决方案1】:

第 1 步:从您的 WebView 获取 HTML 源代码 - 请参阅this 问题。您基本上创建了一个 JS 接口,将您的 HTML 源代码提取为 Java 字符串。

第 2 步:使用 HTML 解析器(例如 JSOUP)将 JAVA 字符串解析为您可以轻松处理的格式。

第3步:使用解析器extract your relevant information。在这里,您可以使用getElementsByTag('span') 获取所有跨度,然后按类过滤;或者你可以直接使用getElementsByClass('healine')getElementsByClass('source')

一般来说,在所有情况下,您都可以检索 HTML 源代码并解析 DOM。

编辑:如果您不想使用解析器,您可以通过搜索 HTML 源字符串来提取信息(找到正确的类,然后找到要解析的 '' 字符的索引信息。这种方式更难、效率更低、灵活性更低,但可以做到。

【讨论】:

  • 这看起来很有希望,但我以前从未使用过 JSoup。这是唯一的方法吗?我可以使用其他更简单的技巧吗?
  • 我认为 JSoup 看起来很吓人,因为它是一个第三方库,但它可以通过三行代码获取您的信息: Document doc = Jsoup.parse(html); doc.getElementsByClass('healine');和 doc.getElementsByClass('source')。如果这是您将在应用程序中进行的唯一 HTML 解析,并且事先知道页面的格式,您可以只对字符串执行搜索以提取数据。尽管使用 HTML 解析器会更干净、更高效、更灵活。添加解析器就像将 .jar 文件放在项目的某个文件夹中一样简单。
  • 其实我也在想。是否可以以编程方式仅限制 webview 中的前 2 行?这也将解决我的问题。我只想显示前 2 行,更像是 maxlines =2 之类的?
  • 是的,你可以截取源代码,然后只保留前两行(或每一段文本,直到你到达 ,然后调用 webview.loadData(yourNewHTMLSourceString, "文本/html", null);
  • 如何截取源直到
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 2013-07-09
  • 1970-01-01
  • 2013-09-05
  • 2019-03-16
  • 2012-07-08
相关资源
最近更新 更多