4

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

类主题中有许多 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. 任何人都可以看到一个明显的错误吗?也将不胜感激链接到好的教程。

4

2 回答 2

1

如果您知道您将始终拥有一个,<a>那么只需将其添加到 XPath,然后text()a.

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

所以首先得到每个跨度:

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

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

topic.asText();
于 2013-06-14T16:00:23.277 回答
0

text()只会从该元素中提取文本,并且您给出的示例没有文本组件,只有一个子元素。

试试这个:

List<?> topics = (List)page.getByXPath("//span[@class='topic']");
于 2013-06-14T04:05:46.267 回答