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