为什么jsoup nextSibling()为null?

时间:2017-07-13 04:54:26

标签: nullpointerexception jsoup frontend

   Document document = Jsoup.parse("<p><strong>Chapter One</strong></p><p>A piece of computer code</p><p><strong>Chapter Two</strong></p><p>Java in 10 minutes</p><br>");
    Elements titles = document.getElementsByTag("strong");
    for (int i = 0; i < titles.size(); i++) {
        Node node = titles.get(i).nextSibling();            
        if (node != null) System.out.println("sib = " + node.toString());
    }

大家好,我想在强大之后获取内容,就像我尝试保存第一章并获得“一块元素标题”,但为什么我的代码什么都没显示而nextSibling为空?感谢

1 个答案:

答案 0 :(得分:1)

它不起作用,因为每个<strong>元素都没有兄弟姐妹,因为它们是所列段落的唯一子元素。根据您的期望,您应该要求父母兄弟,例如:

Document document = Jsoup.parse("<p><strong>Chapter One</strong></p><p>A piece of computer code</p><p><strong>Chapter Two</strong></p><p>Java in 10 minutes</p><br>");
Elements titles = document.getElementsByTag("strong");
for (int i = 0; i < titles.size(); i++) {
    Element node = (Element) titles.get(i).parent().nextSibling();
    if (node != null) {
        System.out.println("sib = " + node.text());
    }
}

您还可以将Node投射到Element以使用Element.getText()方法,该方法将从所选的同级段落中返回内部文本。希望它有所帮助。