如何阅读html字符串

时间:2017-07-01 15:24:50

标签: android html html-table html-parsing

我在我的Android应用程序中实现了ccavenue集成

ccavenue返回html字符串

我需要从该字符串中读取html正文内容和表格行

下面是html字符串

<head><head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>Response Handler</title>
         </head>
         <body>


            <center>
                <font size="4" color="blue"><b>Response Page</b></font>
                <table border="1">

                        <tbody><tr>
                            <td>merchant_param5 </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>merchant_param4 </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>merchant_param3 </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>billing_name </td>
                            <td> Amit </td>
                        </tr>

                        <tr>
                            <td>merchant_param2 </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>status_message </td>
                            <td> Payment failed due to a technical error with the bank. Please retry after some time. </td>
                        </tr>

                        <tr>
                            <td>merchant_param1 </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>billing_city </td>
                            <td> Nashik </td>
                        </tr>

                        <tr>
                            <td>amount </td>
                            <td> 1.0 </td>
                        </tr>

                        <tr>
                            <td>order_status </td>
                            <td> Failure </td>
                        </tr>

                        <tr>
                            <td>billing_country </td>
                            <td> India </td>
                        </tr>

                        <tr>
                            <td>response_code </td>
                            <td> 0 </td>
                        </tr>

                        <tr>
                            <td>billing_address </td>
                            <td> Nashik </td>
                        </tr>

                        <tr>
                            <td>billing_notes </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>discount_value </td>
                            <td> 0.0 </td>
                        </tr>

                        <tr>
                            <td>retry </td>
                            <td> N </td>
                        </tr>

                        <tr>
                            <td>billing_zip </td>
                            <td> 422005 </td>
                        </tr>

                        <tr>
                            <td>delivery_country </td>
                            <td> India </td>
                        </tr>

                        <tr>
                            <td>billing_tel </td>
                            <td> 9404005390 </td>
                        </tr>

                        <tr>
                            <td>failure_message </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>order_id </td>
                            <td> 6355706 </td>
                        </tr>

                        <tr>
                            <td>bank_ref_no </td>
                            <td> null </td>
                        </tr>

                        <tr>
                            <td>delivery_address </td>
                            <td> Nashik </td>
                        </tr>

                        <tr>
                            <td>status_code </td>
                            <td> null </td>
                        </tr>

                        <tr>
                            <td>billing_state </td>
                            <td> Maharashtra </td>
                        </tr>

                        <tr>
                            <td>payment_mode </td>
                            <td> Wallet </td>
                        </tr>

                        <tr>
                            <td>vault </td>
                            <td> N </td>
                        </tr>

                        <tr>
                            <td>delivery_state </td>
                            <td> Maharashtra </td>
                        </tr>

                        <tr>
                            <td>offer_type </td>
                            <td> null </td>
                        </tr>

                        <tr>
                            <td>bin_country </td>
                            <td>  </td>
                        </tr>

                        <tr>
                            <td>delivery_name </td>
                            <td> Amit </td>
                        </tr>

                        <tr>
                            <td>offer_code </td>
                            <td> null </td>
                        </tr>

                        <tr>
                            <td>tracking_id </td>
                            <td> 106246806219 </td>
                        </tr>

                        <tr>
                            <td>delivery_city </td>
                            <td> Nashik </td>
                        </tr>

                        <tr>
                            <td>trans_date </td>
                            <td> 01/07/2017 20:27:58 </td>
                        </tr>

                        <tr>
                            <td>delivery_zip </td>
                            <td> 422005 </td>
                        </tr>

                        <tr>
                            <td>delivery_tel </td>
                            <td> 9404005390 </td>
                        </tr>

                        <tr>
                            <td>currency </td>
                            <td> INR </td>
                        </tr>

                        <tr>
                            <td>eci_value </td>
                            <td> null </td>
                        </tr>

                        <tr>
                            <td>card_name </td>
                            <td> Paytm </td>
                        </tr>

                        <tr>
                            <td>billing_email </td>
                            <td> desale.amit@gmail.com </td>
                        </tr>

                        <tr>
                            <td>mer_amount </td>
                            <td> 1.0 </td>
                        </tr>

                </tbody></table>
            </center>


         </body></head>

我需要解析上面的html字符串

如何解析此字符串

请建议

感谢

2 个答案:

答案 0 :(得分:2)

您可以使用JSOUP将数据提取为String

1。)使用Jsoup.parse(your_string)

将字符串作为文档获取

2.。)使用document.getAllElements()作为元素获取所有节点

3.。)遍历元素并使用ownText()函数获取数据

    Document document=Jsoup.parse(your_response);
    Elements elements = document.getAllElements();
    for (Element element : elements) {
        String data =element.ownText();
        // some strings are empty so avoid them
        if (!data.isEmpty()) {
            System.out.println(data);               
        }
    }

输出

Response Handler
Response Page
merchant_param5
merchant_param4
merchant_param3
billing_name
Amit
... data
... more data
desale.amit@gmail.com
mer_amount
1.0

答案 1 :(得分:1)

您可以使用Jsop lib或Htmlcleaner