在進行考試練習時,遇到麻煩的是瞭解XML中的「=>」語法。搜索它的網頁,但無法找到它的意義。以下是使用語法的考試範例:XQuery中=>語法的含義是什麼?
FOR $b IN //Brand
LET $cars :=
(FOR $c IN //Car
LET $cb := $c/@model => //Model/..
WHERE $cb/@name = $b/@name
RETURN $c)
LET $nr := COUNT($cars)
RETURN <Brand name={$b/@name}>{$nr}</Brand>
它的目標是統計每個品牌的所有汽車。
這是我嘗試:
FOR $b IN //Brand
LET $cars := (
FOR $c IN //Car
WHERE $c/@Model = $b/Model/@name //Might not work to match against all models this way?
RETURN ({c})
RETURN <Brand name={$b/@name}>COUNT($cars)</Brand>
這是XML文檔:
<!DOCTYPE CarsNStars [
<!ELEMENT CarsNStars (Brand*, Car*)>
<!ELEMENT Brand (Model*)>
<!ELEMENT Model (Year+)>
<!ELEMENT Year (#EMPTY)>
<!ELEMENT Car (#EMPTY)>
<!ATTLIST Brand
name ID #REQUIRED
country CDATA #IMPLIED>
<!ATTLIST Model
name ID #REQUIRED>
<!ATTLIST Year
year CDATA #REQUIRED
horsePower CDATA #IMPLIED>
<!ATTLIST Car
regNr ID #REQUIRED
model IDREF #REQUIRED
miles CDATA #REQUIRED>
]>
編輯時的地方,這顯然必須已經從講師一個錯字。
$ cb應該返回特定汽車的品牌,如果我理解查詢正確。 – Rawa 2013-03-14 16:58:32