0

テーブル内にテーブルを含む1つのリンクに出くわしたとき、私はhtmlテーブルを扱っていました。以下のように、URL全体の最初のテーブルを抽出しました。

final Document document = Jsoup.connect("http://www.webdesign.org/html-and-css/tutorials/table-examples.6139.html").get();
final Elements tables = document.select("table");     
final Element table = tables.get(0);

今、HTMLの下のJsoup cssセレクターを使用して、最初の最も内側のテーブルを抽出したい、

<table cellspacing="0" cellpadding="0"> 
 <tbody>
  <tr> 
   <td id="header_left"><a href="/">
     <div id="logo"></div></a>
    <!-- end logo --></td> 
   <td id="header_center"> 
    <div id="header_menu"> 
     <h2><a href="http://www.templatemonster.com" target="_blank">WEB DESIGN TEMPLATES</a></h2> 
     <p><a href="http://www.templatemonster.com/website-templates.php/?aff=wdl">HTML &amp; CSS Templates</a></p> 
     <p><a href="http://www.templatemonster.com/wordpress-themes.php/?aff=wdl">Wordpress Themes</a></p>
     <p><a href="http://www.templatemonster.com/prestashop-themes.php/?aff=wdl">PrestaShop Themes</a></p> 
    </div>
    <!-- end header_nemu --> 
    <div id="header_books"></div>
    <!-- end header_books --> </td> 
   <td id="header_right"> 
    <div id="search_pic"></div>
    <!-- end search_pic --> 
    <div id="header_search_div"> 
     <div class="block-search-heading">
      SEARCH
     </div> 
     <form method="get" action="/search.html"> 
      <table> 
       <tbody>
        <tr> 
         <td colspan="2" class="keyword"><input type="text" id="search-keyword" name="keywords" value="" title=" - Any Keyword(s) - " /></td> 
        </tr> 
        <tr> 
         <td class="category"><select id="category" name="category"> <option value="0" style="font-weight:bold;">- All categories -</option> <option value="-1" style="font-weight:bold;">Website Templates</option><option value="1" style="font-weight: bold; ">Web Design Basics</option><option value="26">&nbsp;&nbsp;Web Design Showcase</option><option value="2">&nbsp;&nbsp;Design Principles</option><option value="108">&nbsp;&nbsp;Typography</option><option value="111">&nbsp;&nbsp;Responsive Design</option><option value="99" style="font-weight: bold; ">CMS</option><option value="102">&nbsp;&nbsp;Drupal</option><option value="103">&nbsp;&nbsp;Joomla</option><option value="100">&nbsp;&nbsp;Wordpress</option><option value="109" style="font-weight: bold; ">Tutorials</option><option value="7">&nbsp;&nbsp;Photoshop</option><option value="97">&nbsp;&nbsp;&nbsp;&nbsp;Editor's Pick</option><option value="60">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop Basics</option><option value="61">&nbsp;&nbsp;&nbsp;&nbsp;Special Effects</option><option value="62">&nbsp;&nbsp;&nbsp;&nbsp;Text Effects</option><option value="63">&nbsp;&nbsp;&nbsp;&nbsp;3D Effects</option><option value="64">&nbsp;&nbsp;&nbsp;&nbsp;Textures &amp; Patterns</option><option value="65">&nbsp;&nbsp;&nbsp;&nbsp;Web Layout</option><option value="66">&nbsp;&nbsp;&nbsp;&nbsp;Drawing Techniques</option><option value="67">&nbsp;&nbsp;&nbsp;&nbsp;Color Management</option><option value="68">&nbsp;&nbsp;&nbsp;&nbsp;Photo Editing</option><option value="69">&nbsp;&nbsp;&nbsp;&nbsp;ImageReady Animation</option><option value="72">&nbsp;&nbsp;&nbsp;&nbsp;Miscellaneous</option><option value="81">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop CS4 Tutorials</option><option value="98">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop CS5 Tutorials</option><option value="105">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop CS6 Tutorials</option><option value="53">&nbsp;&nbsp;Vector Graphics</option><option value="21">&nbsp;&nbsp;HTML and CSS</option><option value="30" style="font-weight: bold; ">Miscellaneous</option><option value="50">&nbsp;&nbsp;Interviews</option><option value="104">&nbsp;&nbsp;Inspiration</option><option value="110">&nbsp;&nbsp;Freebies</option></select></td> 
         <td class="submit"><input type="submit" value="" /></td> 
        </tr> 
       </tbody>
      </table> 
     </form>
    </div>
    <!-- end header_search_div --></td> 
  </tr> 
 </tbody>
</table>

テーブルまたはこのテーブル内にある最初の最も内側のテーブルを取得したいのですが、

<table> 
       <tbody>
        <tr> 
         <td colspan="2" class="keyword"><input type="text" id="search-keyword" name="keywords" value="" title=" - Any Keyword(s) - " /></td> 
        </tr> 
        <tr> 
         <td class="category"><select id="category" name="category"> <option value="0" style="font-weight:bold;">- All categories -</option> <option value="-1" style="font-weight:bold;">Website Templates</option><option value="1" style="font-weight: bold; ">Web Design Basics</option><option value="26">&nbsp;&nbsp;Web Design Showcase</option><option value="2">&nbsp;&nbsp;Design Principles</option><option value="108">&nbsp;&nbsp;Typography</option><option value="111">&nbsp;&nbsp;Responsive Design</option><option value="99" style="font-weight: bold; ">CMS</option><option value="102">&nbsp;&nbsp;Drupal</option><option value="103">&nbsp;&nbsp;Joomla</option><option value="100">&nbsp;&nbsp;Wordpress</option><option value="109" style="font-weight: bold; ">Tutorials</option><option value="7">&nbsp;&nbsp;Photoshop</option><option value="97">&nbsp;&nbsp;&nbsp;&nbsp;Editor's Pick</option><option value="60">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop Basics</option><option value="61">&nbsp;&nbsp;&nbsp;&nbsp;Special Effects</option><option value="62">&nbsp;&nbsp;&nbsp;&nbsp;Text Effects</option><option value="63">&nbsp;&nbsp;&nbsp;&nbsp;3D Effects</option><option value="64">&nbsp;&nbsp;&nbsp;&nbsp;Textures &amp; Patterns</option><option value="65">&nbsp;&nbsp;&nbsp;&nbsp;Web Layout</option><option value="66">&nbsp;&nbsp;&nbsp;&nbsp;Drawing Techniques</option><option value="67">&nbsp;&nbsp;&nbsp;&nbsp;Color Management</option><option value="68">&nbsp;&nbsp;&nbsp;&nbsp;Photo Editing</option><option value="69">&nbsp;&nbsp;&nbsp;&nbsp;ImageReady Animation</option><option value="72">&nbsp;&nbsp;&nbsp;&nbsp;Miscellaneous</option><option value="81">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop CS4 Tutorials</option><option value="98">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop CS5 Tutorials</option><option value="105">&nbsp;&nbsp;&nbsp;&nbsp;Photoshop CS6 Tutorials</option><option value="53">&nbsp;&nbsp;Vector Graphics</option><option value="21">&nbsp;&nbsp;HTML and CSS</option><option value="30" style="font-weight: bold; ">Miscellaneous</option><option value="50">&nbsp;&nbsp;Interviews</option><option value="104">&nbsp;&nbsp;Inspiration</option><option value="110">&nbsp;&nbsp;Freebies</option></select></td> 
         <td class="submit"><input type="submit" value="" /></td> 
        </tr> 
       </tbody>
      </table> 

どうしようかと本当に頭が下がります。どんな指針も本当に役に立ちます。

4

2 に答える 2

0

試行錯誤の末、ようやく答えが見つかりました。以下はコードです、

Document document = Jsoup.connect("http://www.webdesign.org/html-and-css/tutorials/table-examples.6139.html").get();
Elements tables = document.select("table");     
Element table = tables.get(0);

// Checks if a table contains table inside it
while(! table.select(":has(table)").isEmpty()){
    table = table.select("table table").first();
}

テーブル内の最初の最も内側のテーブルを取得します。

于 2013-04-25T09:02:07.310 に答える