【问题标题】:The method createDOM not return document方法 createDOM 不返回文档
【发布时间】:2013-09-13 17:51:50
【问题描述】:

我使用 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);
    

    什么都不返回。

如果你创建一个没有 android 的简单 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();

【问题讨论】:

  • “什么都不返回”是什么意思? null?空文件?例外?

标签: java android xpath htmlcleaner


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-06-30
    • 2019-07-22
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多