2013-04-12 26 views
1

有沒有一種智能的方式來讀取android中的URL元標記的內容?我將在android的webview中顯示一個網頁,並希望從裏面的元標記中讀取一些信息。解析網頁字符串的唯一方法是找到特殊字符串「meta name =」x -...「content =」!!!「或者是否有更聰明的方法?如何在android上從網站上提取元標籤?

+0

您不應該分析字符串。相反,使用sax解析器或其他方式來讀取結構化數據並獲取相關的元素。 –

+0

[Java中解析元標記]的可能重複(http://stackoverflow.com/questions/299334/parse-meta-tags-in-java) – jbaylina

回答

1

一個聰明的方法是使用Jericho Library

假設你有一個像這樣

<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> 

例如一個html文件,以獲得與名稱meta標籤的值「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」的值