【问题标题】:How to extract meta tags from website on android?如何从android上的网站中提取元标记?
【发布时间】:2013-04-04 15:31:59
【问题描述】:

有没有一种智能的方法可以从 android 中的 URL 读取元标记的内容?我将在 android 的 webview 中显示一个网页,并想从里面的 metatag 中读取一些信息。是唯一的方法来解析网页的字符串找到特殊字符串“meta name="x-..." content="!!!”还是有什么更聪明的方法??

【问题讨论】:

  • 你不应该解析字符串。相反,使用 sax 解析器或其他读取结构化数据的方式并获取相关元素。
  • parse meta tags in Java的可能重复

标签: android html meta-tags


【解决方案1】:

一个聪明的方法是使用Jericho Library

假设你有一个这样的 html 文件

<html xmlns="http://www.w3.org/1999/xhtml" debug="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252"/>
<link href="styleUrgente.css" rel="stylesheet" type="text/css"/>
<meta name="viewport" content="width = 320, initial-scale = 1.0, user-scalable = no"/>
<meta name="joc-height" value="120"/>
<meta name="joc-enabled" value="1"/>
</head>
<body margin="0" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<script src="chrome-extension://bmagokdooijbeehmkpknfglimnifench/googleChrome.js"/>
</html>

例如要获取名称为“joc-height”的元标记的值,您可以使用此方法:

public String extractAllText(String htmlText){
        Source source = new Source(htmlText);   
        String strData = "";        
        List<Element> elements = source.getAllElements("meta");

        for(Element element : elements )
        {
            final String id = element.getAttributeValue("name"); // Get Attribute 'id'
             if( id != null && id.equals("joc-height")){
                 strData = element.getAttributeValue("value").toString();    
                   }
        }
        return strData;
    }

你会得到“120”的值

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-21
  • 2020-08-25
  • 2011-08-02
  • 2011-10-28
  • 2019-05-23
  • 2019-02-24
  • 2023-04-06
相关资源
最近更新 更多