解析html页面

时间:2011-11-26 12:27:34

标签: android html-parsing

我想解析1个网址,之后我想从中访问一些数据。

try {
        Document doc = Jsoup.connect("http://abc.com/en/currency/default.aspx").get();//abc is for example as i cant put site name
        Elements td = doc.select("ctl00_ContentPlaceHolder1_currencylist_rptCurrencyList_ctl01_trList"); //this is the name of table row in html page i will show html page snippet also
        String temp=td.val();
        info.setText(temp);
    } 
     catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 

我要解析的html页面的片段如下     

       <tr id="ctl00_ContentPlaceHolder1_currencylist_rptCurrencyList_ctl01_trList">
<td width="400px" class="CurrencyListItems">             
         UK POUND
         </td>
<td width="60px;" class="CurrencyListItemsIN" align="center">
         5.72
         </td>
<td width="150px;" class="CurrencyListItemsLast">
           <table cellspacing ="0" cellpadding ="0" width="100%">
                   <tr>
                     <td class="CurrencyListBANKNOTES" align="center">                         
                     5.625
                     </td>
                     <td class="CurrencyListBANKNOTES2" width="75px" align="center">

                     5.75
                     </td>
                   </tr>
            </table>
         </td>

 我希望从html英镑以上,5.625,5.75 我尝试了上面的代码,但是,如果尝试

,它只是解析URL而不是它的jus

1 个答案:

答案 0 :(得分:2)

试试这个:

Element tr = doc.getElementById("ctl00_ContentPlaceHolder1_currencylist_rptCurrencyList_ctl01_trList");

String contents = tr.text().trim();
contents = contents.replaceAll("\\s+"," "); 
contents = contents. replaceAll("\\<.*?>","-");
String []values = contents.split("-");

Elements elements = tr.select("*");
for (Element element : elements) {
    System.out.println(element.ownText());
}