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が終了する前の最後のものが必要な場合は、2番目のものが必要です。

(これを調べることに興味がある他の人にとっては、これはZoteroサイトトランスレーター用のフレームワークを使用しています。これは、Zotero研究管理システム用のサイトスクレーパーなどを作成するためのいくつかの方法の1つです。)

于 2012-08-16T06:38:58.093 に答える