XQuery/維基百科查詢
外觀
< XQuery
頁面抓取是檢索特定事實的一種方式,前提是其結構是穩定的。
這裡,任務是使用維基百科查詢鳥類的拉丁名稱,給定其通用名稱。
declare namespace h = "http://www.w3.org/1999/xhtml";
let $name := request:get-parameter("name",())
let $url := escape-uri(concat("http://en.wikipedia.org/wiki/",$name),false())
let $page := doc($url)
let $genus := $page//h:tr[h:td[. ='Genus:']]/h:td[2]
let $species := $page//h:tr[h:td[. ='Species:']]/h:td[2]
let $binomial := string($page//h:tr[h:th//h:a[.='Binomial name']]/following-sibling::h:tr//h:b)
return
<bird name="{$name}" genus="{$genus}" species="{$species}" binomial="{$binomial}"/>
這裡,定位所需資料的路徑,假設頁面採用鳥類頁面格式,涉及複雜的 XPath 表示式。例如,屬名是第一單元格為“屬名”的表格行的第二個單元格。
指令碼經常失敗,因為
不難看出,具有本體關係的更多語義標記將優於這些不確定的扭曲。