次のマークアップを検討してください。
<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が終了する前の最後のものが必要な場合は、2番目のものが必要です。
(これを調べることに興味がある他の人にとっては、これはZoteroサイトトランスレーター用のフレームワークを使用しています。これは、Zotero研究管理システム用のサイトスクレーパーなどを作成するためのいくつかの方法の1つです。)