结合两个JSoup元素

时间:2018-08-07 13:40:51

标签: java jsoup

我第一次使用JSoup来基于类解析HTML两个元素。我能够成功提取每个数据。我遇到的问题是以所需的方式格式化数据。我提取的数据用于链接命中计数器。

我想要的最终结果是类似的

https://yadayadayada.com 1,
https://yadayadayada.com 4,
... etc

相反,我得到

https://yadayadayada.com https://yadayadayada.com 1, 4,

这就是我获得当前输出的方式

Document doc = Jsoup.connect(link).get();
             Elements links = doc.getElementsByClass("details shorlinkUrl");

             Elements count = doc.getElementsByClass("highlight listUrl").append(",");

             String counter = count.text();
             String linkname = links.text();

             System.out.println(prettyname.toString()+count.toString());

             String results = new StringBuilder(14).append(prettyname).append(counter).toString();

任何想法或方向都非常受欢迎!

1 个答案:

答案 0 :(得分:1)

在Elements对象上调用text()方法时,将从此集合中的所有元素中获取串联文本。您可以遍历单独的元素,并分别从元素中获取文本并进行相应的操作。

    Elements links = doc.getElementsByClass("details shorlinkUrl");
    Elements count = doc.getElementsByClass("highlight listUrl");


    if(links.size()!= count.size()) {
        throw new IllegalStateException("Think about this situation");
    }

    for(int i = 0; i< links.size(); i++) {
        System.out.println(links.get(i).text() + " " +count.get(i).text()+ ",");
    }