XQuery/维基教科书索引页面
外观
< XQuery
您希望创建维基教科书中页面的索引。
获取书籍的类别页面,并根据页面的首字母重新格式化,因此跳过类别级别。
此索引页面基于书籍中页面的名称。它的起点是与书籍同名的类别,所有页面都需要放入其中。
declare option exist:serialize "method=xhtml media-type=text/html";
let $book:= request:get-parameter("book",())
let $base := "https://wikibooks.cn"
let $url := concat($base,"/wiki/Category:",$book)
let $indexPage :=httpclient:get(xs:anyURI($url),false(),())/httpclient:body
let $pages := $indexPage//div[@class="mw-category"]//li
return
<html>
<h1>Index of {$book} - <a href="{$url}">Wikibooks</a> </h1>
{
for $letter in distinct-values($pages/substring(substring-after(.,'/'),1,1))[string-length(.) = 1]
order by $letter
return
<div>
<h3>{$letter}</h3>
<ul>
{for $page in $pages[starts-with(substring-after(.,'/'),$letter)]
let $url := concat($base,$page/a/@href)
return
<li> <a href="{$url}">{substring-after($page,'/')}</a> </li>
}
</ul>
</div>
}
</html>