我正在编写一个Java程序,用于抓取链接的网页,然后将它们存储在数据库中。我遇到了问题。使用HTMLUnit,我写了以下内容:
page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]");
它返回正确的锚元素,但我只想要href属性中包含的实际路径,而不是整个事物。我怎么能这样做,而且,我如何获得节点之间的数据:
<a href="">I need this data, too.</a>
提前致谢!
答案 0 :(得分:1)
第一个(获得href)
page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]/@href");
第二个(获取文本)
page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]/text()");
答案 1 :(得分:0)
我假设getByXPath是您编写的使用XPath.evaluate的实用程序函数?要获取字符串值,您可以使用xpath.evaluate(expression, object)
或xpath.evaluate(expression, object, XMLConstants.STRING)
。
或者,您可以通过评估“// a [starts-with(@ href,\”showdetails.aspx \“)] / @ href”来返回属性节点上的getNodeValue()
。