xpaths не работает в Java - PullRequest
1 голос
/ 31 июля 2009

Я пытаюсь получить доступ к URL-адресу, получить из него HTML-код и использовать xpath для получения определенных значений из него. Я получаю 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 Ответ

2 голосов
/ 31 июля 2009

Попробуйте "// div [@ id = 'catlisting'] // a"

...