createDOM方法不返回文档

时间:2013-09-13 17:51:51

标签: java android xpath htmlcleaner

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

    什么都不返回。

  3. 如果你创建一个没有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();
    

1 个答案:

答案 0 :(得分:0)

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

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