如何使用Jsoup将嵌套的Div解析为表结构

时间:2012-12-22 08:20:20

标签: java jsoup html

我有像这样的div结构

<div class="DivClass-1"> Div One 
    <div class="DivClass-A"> Div A  </div>
 </div>
    <div class="DivClass-2"> Div Two
    <div class="DivClass-A"> Div B   </div>
 </div>

    <div class="DivClass-3"> Div Three
    <div class="DivClass-A"> Div C   </div>
 </div>
    <div class="DivClass-4"> Div Four 
    <div class="DivClass-A"> Div D   </div>
 </div>

我想解析它并将这个div结构转换为表结构 任何机构都可以知道如何实现这一目标。

2 个答案:

答案 0 :(得分:1)

使用replaceall()替换所有div标签

答案 1 :(得分:1)

我不清楚要将哪个<div>代码转换为<tr><td>代码。

但是,我假设DivClass-1,DivClass-2,DivClass-3,DivClass-4被转换为<tr>标签。其他人则转换为<td>标签 我希望以下代码能给你一点想法。

StringBuffer myHTML = new StringBuffer();
myHTML.append("<div class=\"DivClass-1\"> Div One <div class=\"DivClass-A\"> Div A  </div> </div>" +
                "<div class=\"DivClass-2\"> Div Two<div class=\"DivClass-A\"> Div B   </div></div>" +
                "<div class=\"DivClass-3\"> Div Three<div class=\"DivClass-A\"> Div C   </div></div>" +
                "<div class=\"DivClass-4\"> Div Four <div class=\"DivClass-A\"> Div D   </div></div>");

Document myDoc = Jsoup.parse(myHTML.toString());
//get DivClass-1, DivClass-2, etc. 
Elements DivClass = myDoc.select("div").not("div.DivClass-A");
Elements DivClass_A = myDoc.select("div.DivClass-A");

//rename the tag <div class="DivClass-1"> to <tr class="DivClass-1">
DivClass.tagName("tr");
//renamed the tag <div class="DivClass-A"> to <td class="DivClass-A">
DivClass_A.tagName("td");
System.out.println(myDoc.toString());

这是打印输出 -

<tr class="DivClass-1">
            Div One 
     <td class="DivClass-A"> Div A </td> 
</tr>
<tr class="DivClass-2">
            Div Two
    <td class="DivClass-A"> Div B </td>
</tr>
 <tr class="DivClass-3">
            Div Three
     <td class="DivClass-A"> Div C </td>
 </tr>
 <tr class="DivClass-4">
            Div Four 
     <td class="DivClass-A"> Div D </td>
 </tr>
相关问题