1

これが私のコードです。

String tags="<html><head></head><body><table><tr><td>1</td></tr><tr><td><table><tr><td>3</td><td>4</td></tr></table></td></tr></table><body></html>";
        Document document = Jsoup.parse(tags);
        for(int i=0;i<document.body().childNodes().size();i++)
        {
            if(!document.body().childNodes().get(i).nodeName().startsWith("#"))
            {
                System.out.println("1st Level Nodes:"+document.body().childNodes().get(i).nodeName());
                while(document.body().childNodes().get(i).childNodes().size()>1)
                {
                    System.out.println("2nd Level: "+document.body().childNodes().get(i).childNodes().get(0).nodeName());
                }
            }
        }

タグごとにタグを返す HTML を解析する方法。ループは最内タグでカバーされていません。

これは適切にフォーマットされた html コードです。すべてのタグを最も内側まで解析します。

<html>
<head></head>
<body>
<table>
    <tr>
        <td>1</td>
    </tr>

    <tr>
        <td>
            <table>
            <tr>
                <td>3</td>
                <td>4</td>
            </tr>
            </table>
        </td>
    </tr>
</table>
<body>
</html>

タグの間にあるすべての html を、html コードで示した html の階層として取得したいと考えています。だから私は、親子のシーケンスごとにすべてのタグを次々と取得するのが好きです。

4

1 に答える 1

0

タグのみが必要な場合は、ここでこれを使用できます。

String tags = "<html><head></head><body><table><tr><td>1</td></tr><tr><td><table><tr><td>3</td><td>4</td></tr></table></td></tr></table><body></html>";
Document doc = Jsoup.parse(tags);


for( Element e : doc.select("*") // you can use 'doc.getAllElements()' here too
{
    System.out.println(e.tag());
}

出力:

#root
html
head
body
table
tbody
tr
td
tr
td
table
tbody
tr
td
td
于 2012-09-13T12:39:59.433 に答える