跳至内容

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>

XQuery 索引

XForms 索引

XRX

华夏公益教科书