0

I have div structure like this

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

and i want to parse it and convert this div structure into a table structure can any body give an idea how to achieve this.

2
  • 1) Posting the URL you are parsing would be useful. 2) What do you mean with convert? JSoup can only read the HTML. Commented Dec 22, 2012 at 9:01
  • actually i want to read the nested div structure and then replace that div structure with table tag tr and td. i am parsing a local html file which can contain nested div structure. Commented Dec 22, 2012 at 9:07

2 Answers 2

1

Use replaceall() to replace all div tags

Sign up to request clarification or add additional context in comments.

Comments

1

I am not clear which <div> tag you want to convert to <tr> and <td> tag.

But, I assume DivClass-1, DivClass-2, DivClass-3, DivClass-4 are convert to <tr> tag. Others are convert to <td> tag.
I hope following code will give you little idea.

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());

Here's the printout-

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.