2009-07-30 13 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

"// divの[ID @ = 'catlistingは'] //" は、URLを投稿したり、それがプライベートであることができますか? – djangofan

+0

http://www.rockclimbing.com/routes/Africa/ –

答えて

2

てみ

+0

はうまくいきました。どうもありがとう!なぜid()を使用するのがうまくいきませんか? –

+0

これについてはわかりません。おそらく、整頓がドームツリーを構築する方法に起因するでしょう。 –

関連する問題