使用jsoup获取特定的孩子

时间:2016-05-18 16:12:30

标签: java html jsoup

我有这个简单的例子来说明我的问题: 这是一个html页面test.html:

<body>

        <div class="partA">
            part a
        </div>
        <script></script>
        <div class="partB">
            part b 
        </div>
        <div class="partC">
            part c
        </div>
        <div class="parthh">
            <div>
                part b 2 
            </div>

            <div class="partD">
                part d
            </div>

        </div>
    </body>

这是我的代码java:

 public static void main(String[] args) throws IOException {


    Document doc = Jsoup.parse(new File("C:\\Users\\HC\\Desktop\\dataset\\test.html"), "UTF-8");

    Elements el = doc.select("body > div:eq(1)");

    System.out.println(el.toString());

}

标记&#39;脚本&#39;的问题或其他标签出现在我的diserd标签之前(在这种情况下是第二个div)阻止了良好的代码执行,返回的结果为空。

请问我怎么能忽略那些不明确的标签并得到具体的标签。

2 个答案:

答案 0 :(得分:1)

您可以从script

中删除所有HTML代码
Document doc = Jsoup.parse(new File("C:\\Users\\HC\\Desktop\\dataset\\test.html"), "UTF-8");
Elements el = doc.select("script");
for (Element e : el) {
    e.remove();
}
el = doc.select("body > div:eq(1)");
System.out.println(el.toString());

现在您的文档不会包含该标记,您将获得所需的输出。

答案 1 :(得分:1)

选择器body > div:nth-of-type(2)不是您要找的吗?