1

HtmlUnit を使用して Java で HTML pae を解析しています。ページからすべてのテーブルを取得し、テーブルごとに 5 つの以前の兄弟を見つけたいと考えています。これは、ページ内のテーブルを解析する方法です:

List<HtmlTable> tables = (List<HtmlTable>) page.getByXPath("//table");              
         if(tables!=null && tables.size()>0) {
                  for(int k=tables.size()-1; k>=0; k--) {
                     for (HtmlTableRow row : tables.get(k).getRows()) {
                         List<HtmlTableCell> tds = row.getCells();
                                                                      }
                                                        }
                                            }     

したがって、テーブルが次のような場合:

<p></p>
<p></p>
<div></div>
<table>
.
.
</table>

<div>2 つの<p>要素 を取得する必要があります。

JSoup にはhttp://jsoup.org/apidocs/org/jsoup/nodes/Element.html#previousElementSibling%28%29を兄弟にする方法があるようですが、HtmlUnit でこのようなものを見つけることができません。

4

2 に答える 2

2

より適切なXPath表現を使用してください。

//table/preceding-sibling::*[position()<=3]

与えられた

<html> 
  <p/>  
  <p/>  
  <div/>  
  <table> 
    <tr>
      <td>sdf</td>
    </tr> 
  </table> 
</html>

これは以下を返します:

  <p/>
  <p/>
  <div/>

ここでテストします

次に、最も簡単な方法で結果を反復処理します。

于 2013-10-14T16:02:06.907 に答える