Xpath - 如何获取元素之间包含的数据,而不是元素本身

时间:2010-07-22 13:30:59

标签: java html xhtml xpath

我正在编写一个Java程序,用于抓取链接的网页,然后将它们存储在数据库中。我遇到了问题。使用HTMLUnit,我写了以下内容:

page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]");

它返回正确的锚元素,但我只想要href属性中包含的实际路径,而不是整个事物。我怎么能这样做,而且,我如何获得节点之间的数据:

<a href="">I need this data, too.</a>

提前致谢!

2 个答案:

答案 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()