2009-07-30 2 views
1

Я пытаюсь получить доступ к URL-адресу, получить html и использовать xpaths для получения определенных значений из него. Я получаю html просто отлично, и Jtidy, кажется, очищает его соответствующим образом. Однако, когда я пытаюсь получить желаемые значения с помощью xpaths, я получаю пустой NodeList. Я знаю, что мое выражение xpath правильное; Я тестировал его другими способами. Что не так с этим кодом. Спасибо за помощь.xpaths не работает в java

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()); 
} 
+0

Вы можете разместить URL или это частный? – djangofan

+0

http://www.rockclimbing.com/routes/Africa/ – 2009-07-30 23:04:25

ответ

2

Try "// ДИВ [@ ид = 'catlisting'] //"

+0

, который сработал! большое спасибо! любая идея о том, почему использование id() не работает? – 2009-07-31 16:13:30

+0

Не уверен в этом. Вероятно, из-за того, как аккуратно строит дом. –

Смежные вопросы