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

Java Xpath—如何获取元素之间包含的数据,而不是元素本身,java,html,xhtml,xpath,Java,Html,Xhtml,Xpath,我正在编写一个Java程序,它从网页中获取链接,然后将它们存储在数据库中。不过我有点问题。使用HTMLUnit,我编写了以下内容: page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]"); 它返回正确的锚元素,但我只想要href属性中包含的实际路径,而不是整个路径。如何做到这一点,以及如何获取节点之间包含的数据: <a href="">I need this data, too.</a> 提

我正在编写一个Java程序,它从网页中获取链接,然后将它们存储在数据库中。不过我有点问题。使用HTMLUnit,我编写了以下内容:

page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]");
它返回正确的锚元素,但我只想要href属性中包含的实际路径,而不是整个路径。如何做到这一点,以及如何获取节点之间包含的数据:

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

提前谢谢

第一个(获取href)

第二个(获取文本)


我假设getByXPath是您编写的一个实用函数,它使用XPath.evaluate?要获取字符串值,可以使用
xpath.evaluate(表达式,对象)
xpath.evaluate(表达式,对象,XMLConstants.string)


或者,您可以在通过计算“//a[以(@href,\“showdetails.aspx\”)开头]/@href]返回的属性节点上调用
getNodeValue()

感谢您的快速响应。这些函数返回以下内容:[DomAttr[name=href value=showdetails.aspx?id=19409709&rn=0&pi=0&ref=search],而我只需要该值。如果不可能,我如何从返回的数组对象访问该值?请参阅编辑,让我知道您正在查找的内容。XPath函数text()将返回节点内容(无论是属性还是元素。预编辑比编辑更接近我需要的内容。编辑返回空括号结果[],而预编辑返回了我的上述评论。基本上,我相信你一开始是对的,但我不确定如何访问该数据。我的目标是使用此功能来删除页面上的链接,然后循环链接,并通过链接路径获取后续页面,调用page.getByXPath()每一个链接都有很多次。如果这让人困惑,我很抱歉。
page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]/@href");
page.getByXPath("//a[starts-with(@href, \"showdetails.aspx\")]/text()");