html表td内容解析使用android中的jsoup

时间:2015-02-05 10:21:03

标签: java android jsoup

我和我一起使用了一些html表内容。对于我的应用程序,我想在android.But中使用JSOUP解析来解析这些html内容。我是这个JSOUP方法的新手,我无法解析那些html内容正确。

HTML数据:

<table id="box-table-a" summary="Tracking Result">
   <thead>
     <tr>
        <th width="20%">AWB / Ref. No.</th>
        <th width="30%">Status</th>
        <th width="30%">Date Time</th>
        <th width="20%">Location</th>
     </tr>
     </thead>
      <tbody>           
        <tr>
          <td width="20%" nowrap="nowrap" class="click"><a href="Javascript:void(0);" onclick="Javascript:   document.frm_Z45681583.submit();">Z45681583</a></td>
                <td width="30%" nowrap="nowrap" class="click">
                IN TRANSIT<div id='ntfylink' style='display:block; text-decoration:blink'><a href='#' class='topopup' name='modal' style='text-decoration:none'><font face='Verdana' color='#DF0000'><blink>Notify Me</blink></font></a></div>                  
                </td>
                <td width="30%">
              Sat, Jan, 31, 2015 07:09 PM                   
                </td>
                <td width="20%">DELHI</td>
              </tr>

            </tbody>
          </table>
从这张表中我需要&#34; td&#34;内容。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

以下源代码中清楚地描述了所有内容。

private static String test(String htmlFile) {
    File input = null;
    Document doc = null;
    Elements tdEles = null;
    Element table = null;
    String tdContents = "";

    try {
        input = new File(htmlFile);
        doc = Jsoup.parse(input, "ASCII", "");
        doc.outputSettings().charset("ASCII");
        doc.outputSettings().escapeMode(EscapeMode.base);

        /** Get table with id = box-table-a **/
        table = doc.getElementById("box-table-a");

        if (table != null) {
            /** Get td tag elements **/
            tdEles = table.getElementsByTag("td");

            /** Loop each of the td element and get the content by ownText() **/
            if (tdEles != null && tdEles.size() > 0) {
                for (Element e: tdEles) {
                    String ownText = e.ownText();

                    //Delimiter as "||"
                    if (ownText != null && ownText.length() > 0)
                        tdContents += ownText + "||";
                }

                if (tdContents.length() > 0) {
                      tdContents = tdContents.substring(0, tdContents.length() - 2);
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return tdContents;
}

您可以在textview中操作String。所有TD内容均由||分隔。如果需要,请使用String.split()获取每个内容。

String[] data = tdContents.split("\\|\\|");