0

考虑以下标记:

<div>
 <span>A</span>
 B
</div>

我想使用翻译框架获取“B”。我试过以下都失败了:

 date : FW.Xpath("//div/text()") // date ->  null 
 date : FW.Xpath("//div/").text() // date -> AB

我怎样才能只取'B'?

4

1 回答 1

2

尝试:

date : FW.Xpath("//div/span/following-sibling::text()")

或者:

date : FW.Xpath("//div/text()[last()]")

最近在 Zotero 论坛上讨论的问题是 Framework 中的 .text() 调用返回匹配的第一个文本节点,因此您问题中的第一个表达式给出了标签前面的空文本节点。

此处正确的解决方案将取决于您希望拥有的灵活性——一般来说,如果您需要跨度之后的下一个文本节点,那么您需要第一个选项。如果你想要在外部 div 结束之前的最后一个,你想要第二个。

(对于其他对此感兴趣的人,这是使用Zotero 网站翻译框架,这是编写网站爬虫的几种方法之一,以及更多用于 Zotero 研究管理系统的方法。)

于 2012-08-16T06:38:58.093 回答