1

URL にアクセスし、そこから html を取得し、xpaths を使用して特定の値を取得しようとしています。私はhtmlをうまく取得しており、Jtidyはそれを適切にクリーニングしているようです。ただし、xpath を使用して必要な値を取得しようとすると、空の 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()); 
}
4

1 に答える 1

2

「//div[@id='catlisting']//a」を試してください

于 2009-07-31T08:40:09.280 に答える