使用HtmlUnit / XPath从HTML中提取属性值?

时间:2013-10-15 11:59:29

标签: html parsing xpath htmlunit

我正在使用HtmlUnit来解析网站的源代码并提取相机标题。该网站包含几个不同的相机,我需要以某种方式创建所有相机标题的列表。下面是源代码中一个摄像头的一个示例(我更改了摄像头标题以使其更清晰):

<a href="/camera/p-SPM7903509713?prdNo=2" title="Camera Title" onclick="javascript:appendOmParams(this, 'SPM7903509713');">Camera Title</a>

我假设我需要使用我刚刚发现的XPath,因为HtmlUnit没有沿着getElementsByTitle()的内置函数。我如何用上面的例子做到这一点?我的尝试是这样的:

final List<?> titles = webPage.getByXPath("//a[@title=*]");

然而,这不起作用。逻辑就是说,只要“a”具有属性“title”,标题是什么并不重要,我想要它,因此是星号。任何人都知道如何处理这个问题?

1 个答案:

答案 0 :(得分:1)

你一直非常接近正确的表达方式。使用//a[@title]查找具有title属性的所有链接。谓词如果返回某些内容(非空)则评估为true,@title将选择当前标记内的所有标题属性。

如果您想要检索所有图书,请选择//a/@title