簡體   English   中英

Jsoup:在html中找到沒有id的元素

[英]Jsoup: find elements without id in html

我是Jsoup的新手,我正在嘗試解析一個html文件來查找沒有id的所有元素。 到目前為止,我只有這段代碼:

            Document doc = Jsoup.parse(input, null);
        for (Element el : doc.getAllElements()) {
            hasId = el.hasAttr("id");
            if (!hasId) {
                idList.add(el.tagName());
            } else {
                log.info("id:" + el.attr("id"));
            }
        }

具有id的元素可以正確找到。 我的問題是,如果他們有id,我只想掃描start元素。 我可以用Jsoup處理這個嗎?

我不確定我是否正確理解你的問題,但我認為你只想選擇所有沒有id屬性的元素。 如果是這樣,這應該工作:

doc.select("*:not([id])")

jsoup網站上有完整的選擇器列表

更新:

這是一個完整的例子:

import org.jsoup.Jsoup;
import org.jsoup.nodes.*;

public class Soup {
  public static void main(String[] args) {
    String data = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr> <td class=\"reportheader\" align=\"left\" nowrap width=\"720\">Outside my Dreams</td> </tr> </table>";
    Document doc = Jsoup.parse(data);
    StringBuilder tags = new StringBuilder();
    for (Element el : doc.select("body *:not([id])")) {
      tags.append(el.tagName());
      tags.append(' ');
    }
    System.out.println(tags);
  }
}

在我的機器上運行上面給我這個輸出: table tbody tr td

請注意,我稍微更改了查詢: "body *:not([id])" 在前面添加body排除Jsoup在解析data字符串中的部分文檔時自動添加的<html><title></title><body> ... </body></html>

暫無
暫無

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

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