我想从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
。谁能看到一个明显的错误?此外,我们还将欣赏指向优秀教程的链接。
答案 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']");