使用HTMLUnit和XPath获取span元素列表的内容

时间:2013-06-13 15:29:48

标签: java xpath htmlunit

我想从HTML文档中获取值列表。我正在使用HTMLUnit。

类主题有很多span元素。我想提取span标签中的内容:

<span class="topic">
  <a href="http://website.com/page/2342" class="id-24223 topic-link J_onClick topic-info-hover">Lean Startup</a>
 </span>

我的代码如下所示:

    List<?> topics = (List)page.getByXPath("//span[@class='topic']/text()");

然而,每当我尝试迭代列表时,我都会得到NoSuchElementException。谁能看到一个明显的错误?此外,我们还将欣赏指向优秀教程的链接。

2 个答案:

答案 0 :(得分:1)

如果您知道自己总是有<a>,那么只需将其添加到XPath,然后从text()获取a

如果你真的不知道你是否总有a,那么我建议你使用所有.asText()及其HtmlElement的{​​{1}}方法后代有。

首先得到每个跨度:

List<?> topics = (List)page.getByXPath("//span[@class='topic']");

然后,在循环中,获取每个跨度内的文本:

topic.asText();

答案 1 :(得分:0)

text()只会从该元素中提取文本,而您提供的示例中没有文本组件,只有子元素。

请改为尝试:

List<?> topics = (List)page.getByXPath("//span[@class='topic']");