簡體   English   中英

JSoup按ID提取文本

[英]JSoup Extract Text by id

我想通過標簽內包含的ID提取文本“ Inbox(100)” html。 我的測試用例如下所示:

    String html = "<td id=\"e-mailoutline-row\" title=\"Inbox\" class=\"outline-text\">Inbox (100)</td>";

    Document doc = Jsoup.parse(html);
    Element numberofEmails = doc.getElementById("e-mailoutline-row");

問題是numberofEmails始終為null,所以我什至無法獲取文本,更不用說計算括號中的實際數字了。

我也嘗試過:

        String html = "<head><body><td id=\"e-mailoutline-row\" title=\"Inbox\" class=\"outline-text\">Inbox (100)</td></body?</head>";

一旦測試用例能夠正常工作,我將使用它從更大的文檔中提取文本。

這應該很簡單。 我想念什么?

這些命令的語法是正確的,但是JSoup似乎對正確形成html感到挑剔。 以下html測試用例完全按預期工作:

String html = "<head><body><table><tr><td id=\"e-mailoutline-row\">Inbox (100)</td></tr></table></body></head>";

請注意,我不僅必須添加,而且還必須添加。 僅將頭和身體添加到原始測試用例中時,該方法不起作用。

感謝@soorapadman和@Yaroslav為我指出正確的方向。

Jsoup始終遵循層次結構。 為了從td標簽解析,它應該來自table->tr-->td

 String html = "<head><body><table><tr><td id=\"e-mailoutline-row\">Inbox (100)</td></tr></table></body></head>";
    Document doc = Jsoup.parse(html);
    Element numberofEmails = doc.getElementById("e-mailoutline-row");
    System.out.println(numberofEmails.text());

輸出:

Inbox (100)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM