2016-03-30 9 views
0

の最初の列からデータを取得するためにjsoup使用して、私は、単純なHTMLページ、次されているの抽出物を作成しました最初の列はJsoupを使って "Fruit"と呼ばれました。私の質問の目的のためにテーブル

Apples 
Oranges 

Iは、以下である抽出物そのうち、プログラムを書かれている:従って、結果があるべきである

//In reality, it should be connect(html).get(). 
//Also, suppose that the String `html` has the full source code. 
Document doc = Jsoup.parse(html); 

Elements table = doc.select("table.fruit-vegetables").select("tbody").select("tr").select("td").select("a"); 

for(Element element : table){ 
    System.out.println(element.text()); 
} 

このプログラムの結果は次のとおり

Apples 
Carrots 
Oranges 
Peas 

I何かがうまくいかないことを知っていますが、間違いを見つけることはできません。スタックオーバーフローの他のすべての質問は私の問題を解決しませんでした。私は何をしなければならないのですか?

答えて

0

あなたは

:eq(n)として:eq(n)の説明を見つけることができますhttp://jsoup.org/cookbook/extracting-data/selector-syntaxから

Elements el = doc.select("table.fruit-vegetables td:eq(0)"); 
for (Element e : el){ 
    System.out.println(e.text()); 
} 

を探しているようです。その兄弟インデックスnに等しい要素を見つけます。例えばform input:eq(1)

のでtd:eq(0)このケースでは、我々はその親(tr)の最初の子である各tdを選択しています。

+0

あなたの答えは私の問題を解決するのに大いに役立ちました。どうもありがとうございました。 – George