代码之家  ›  专栏  ›  技术社区  ›  bobby

在Java中不能使用XPath

  •  1
  • bobby  · 技术社区  · 17 年前

    我试图访问一个URL,从中获取HTML,并使用xpaths从中获取某些值。我得到的HTML很好,jtidy似乎是清理它适当。但是,当我尝试使用xpaths获取所需的值时,会得到一个空的nodelist。我知道我的xpath表达式是正确的;我用其他方法测试过它。这个代码有什么问题。谢谢你的帮助。

    String url_string = base_url + countries[c];
    URL url = new URL(url_string);
    
    Tidy tidy = new Tidy();
    tidy.setShowWarnings(false);
    tidy.setXHTML(true);
    tidy.setMakeClean(true);
    Document doc = tidy.parseDOM(url.openStream(), null);
    //tidy.pprint(doc, System.out);
    
    String xpath_string = "id('catlisting')//a";
    XPath xpath = XPathFactory.newInstance().newXPath();
    XPathExpression expr = xpath.compile(xpath_string);
    
    NodeList nodes = (NodeList)expr.evaluate(doc, XPathConstants.NODESET);
    System.out.println("size="+nodes.getLength());
    for (int r=0; r<nodes.getLength(); r++) {
        System.out.println(nodes.item(r).getNodeValue()); 
    }
    
    1 回复  |  直到 17 年前
        1
  •  2
  •   Maurice Perry    17 年前

    尝试“//div[@id='catListing']//a”

    推荐文章