【问题标题】:How to Count total Html Tags using Jsoup如何使用 Jsoup 计算总 Html 标签
【发布时间】:2014-06-02 04:05:19
【问题描述】:

大家好,我如何计算html标签的总数而不一一计算?例如:

我不 想要这样的:

   int count=0;
   count=doc.getElementsByTag("img").size()+doc.getElementsByTag("div").size()+doc.getElementsByTag("a").size()+doc.getElementsByTag("p").size();

System.out.println("Scripts inside HTML " + count);

有没有办法在Jsoup中将所有这些标签计数到一个命令中?

【问题讨论】:

标签: jsoup


【解决方案1】:

有很多方法可以找到它。您可以使用document.select("*");org.jsoup.select.Collectordocument.getAllElements() 来获取所有元素。 All 返回一个元素列表。该列表的大小给出了标签的数量。您也可以遍历元素并获取标签名称。或者在一个集合中找到不同的名称。下面的程序列出了所有这些。

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Collector;
import org.jsoup.select.Evaluator;


public class CountTags {

    public static void main(String[] args) {
        String URL = "http://stackoverflow.com/";

        try {
            Document document = Jsoup.connect(URL).get();
            List<String> tags = new ArrayList<String>();
            System.out.println("Number of tags by getAllElements() method =" + document.getAllElements().size());
            System.out.println("Number of tags by Collector.collect() method =" + Collector.collect(new Evaluator.AllElements(), document).size());
            System.out.println("Number of tags by select(\"*\") method =" + document.select("*").size());
            for(Element e : document.getAllElements()){
                tags.add(e.tagName().toLowerCase());
            }
            System.out.println("The tags = " + tags);
            System.out.println("Distinct tags = " + new HashSet<String>(tags));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

【讨论】:

  • 非常感谢您的回答。我会尝试一下
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-27
  • 2014-01-11
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多