方法创建DOM不返回文档



我使用 HtmlCleaner 2.6.1 和 Xpath 来解析 Android 应用程序中的 html 页面。这里html页面:

  1. http://www.kino-govno.com/comments/42571-postery-kapitan-fillips-i-poslednij-rubezh

  2. http://www.kino-govno.com/comments/42592-fantasticheskie-idei-i-mesta-ih-obitanija

    第一个链接返回文档,没问题。这个地方的第二个链接:

    document = domSerializer.createDOM(tagNode);
    

    不返回任何内容。

如果你创建一个没有安卓的简单Java项目。这一切都很好。

这是代码:

        String queries = "//div[starts-with(@class, 'news_text op')]/p";            
        URL url = new URL(link2);
        TagNode tagNode = new HtmlCleaner().clean(url);
        CleanerProperties cleanerProperties = new CleanerProperties();
        DomSerializer domSerializer = new DomSerializer(cleanerProperties);
        document = domSerializer.createDOM(tagNode);
        xPath = XPathFactory.newInstance().newXPath();
        pageNode = (NodeList)xPath.evaluate(queries,document, XPathConstants.NODESET);
        String val = pageNode.item(0).getFirstChild().getNodeValue();

这是因为HtmlCleaner将第二个HTML页面的段落包装到另一个<div/>中,所以它不再是一个直接的子页面。使用 descendent-or-self//而不是child/

//div[starts-with(@class, 'news_text op')]//p

相关内容

  • 没有找到相关文章

最新更新