您可以撥打getElementsByTag()
中的任何元素以獲得給定類型的所有後代元素(element.getElementsByTag("h")
將得到所有<h>
),然後就可以遍歷結果用一個簡單的獲取訂單。
見示例代碼:
import org.jsoup.Jsoup;
import org.jsoup.nodes.*;
import org.jsoup.select.*;
public class JsoupHtmlSiblingsOrder {
public static void main(String[] args) {
String html = "<html><body><span>HELLO!</span><table id=\"myTable\"><tbody> " +
"<tr><td> <span> " +
" ..... " +
" <h>apple</h> " +
" ..... " +
" </span> " +
"</td><td><span> " +
" ..... " +
" <h>orange</h> " +
" ..... " +
" </span> " +
"</td><td><span> " +
" ..... " +
" <h>pear</h> " +
" ..... " +
" </span> " +
"</td></tr> " +
"</tbody></table></body></html> ";
Document doc = Jsoup.parse(html);
Element table = doc.getElementById("myTable");;
Elements hs = table.getElementsByTag("h");
for (int i = 0; i < hs.size(); i++) {
Element h = hs.get(i);
System.out.println(h.text()+":"+(i+1));
}
}
}
輸出:
apple:1
orange:2
pear:3
這就是我所期待的。謝謝。我試着爲你投票,但被拒絕(聲望<15)。 – user2536847
如果標籤也是未知的,即圍繞文本的標籤不是固定的,但它可以是任何標籤(h,span,div等),是否有簡單的方法可以實現類似的結果?謝謝。 –
user2536847
嘿,在那裏,我剛過來看到你的這個評論......你還需要嗎? – acdcjunior