2008-12-17

nextLink (哀愁のポール・アンカー)

taizooo:

//a[contains(@href,"/page/")][number(substring-after(self::a/@href,"/page/"))-number(substring-after(preceding-sibling::a/@href,"/page/")) = 2 or number(substring-after(self::a/@href,"/page/"))-number(substring-after(following-sibling::a/@href,"/page/")) = 2 or number(substring-after(self::a/@href,"/page/"))=2]

ref:


/page/2 のページには /page/1 と /page/3 へのアンカーがある

/page/3 のページには /page/2 と /page/4 へのアンカーがある

/page/4 のページには /page/3 と /page/5 へのアンカーがある

そして /page/1 のページには /page/2 へのアンカーだけがある

ということから隣りあったアンカーのページ番号を引き算して”2”だったらそのアンカーがnextLinkっていうふうにしてみた。

最後の「or number(substring-after(self::a/@href,”/page/”))=2」は/page/2のリンクを無条件で候補に入れてしまうと思います(/page/2と/page/4だったらたぶん両方が候補になる)。候補が複数ある場合は文書中の出現位置でどっちが選ばれるか決まるのかな?