XML/XQuery/return — различия между версиями

Материал из Web эксперт
Перейти к: навигация, поиск
 
м (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>