考虑以下标记:
<div>
<span>A</span>
B
</div>
我想使用翻译框架获取“B”。我试过以下都失败了:
date : FW.Xpath("//div/text()") // date -> null
date : FW.Xpath("//div/").text() // date -> AB
我怎样才能只取'B'?
考虑以下标记:
<div>
<span>A</span>
B
</div>
我想使用翻译框架获取“B”。我试过以下都失败了:
date : FW.Xpath("//div/text()") // date -> null
date : FW.Xpath("//div/").text() // date -> AB
我怎样才能只取'B'?
尝试:
date : FW.Xpath("//div/span/following-sibling::text()")
或者:
date : FW.Xpath("//div/text()[last()]")
最近在 Zotero 论坛上讨论的问题是 Framework 中的 .text() 调用返回匹配的第一个文本节点,因此您问题中的第一个表达式给出了标签前面的空文本节点。
此处正确的解决方案将取决于您希望拥有的灵活性——一般来说,如果您需要跨度之后的下一个文本节点,那么您需要第一个选项。如果你想要在外部 div 结束之前的最后一个,你想要第二个。
(对于其他对此感兴趣的人,这是使用Zotero 网站翻译框架,这是编写网站爬虫的几种方法之一,以及更多用于 Zotero 研究管理系统的方法。)