XML/XQuery/return — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:25, 26 мая 2010
Return a if statement
<source lang="xml">
File: Data.xml
<?xml version="1.0"?> <bib>
<book year="1988"> <title>title 1</title> <author> <last>A</last> <first>B</first> </author> <author> <last>C</last> <first>D</first> </author> </book> <book year="2004"> <title>title 2</title> <author> <last>E</last> <first>F</first> </author> </book>
</bib>
File: Query.xquery <MultiAuthor> {for $book in doc("Data.xml")/bib/book return if (count($book/author) gt 2)
then <book> <title>{$book/title/text()}</title> <idOfAuthors>{count($book/author)}</idOfAuthors> </book> else ()
} </MultiAuthor>
Output: <?xml version="1.0" encoding="UTF-8"?> <MultiAuthor/>
</source>
Return element statement
<source lang="xml">
File: Data.xml
<order>
<car model="A"> <id>0001</id> <name language="en">name 1</name> </car> <car model="B"> <id>0002</id> <name language="en">name 2</name> </car> <car model="B"> <id>0003</id> <name language="en">name 3</name> </car>
</order>
File: Query.xquery for $car in doc("Data.xml")//car return <car>
<id>{$car/id}</id> <price>{for $price in doc("Data.xml")//prod where $car/id = $price/@id return $price/price}</price> </car>
Output: <?xml version="1.0" encoding="UTF-8"?> <car>
<id> <id>0001</id> </id> <price/>
</car> <car>
<id> <id>0002</id> </id> <price/>
</car> <car>
<id> <id>0003</id> </id> <price/>
</car>
</source>