XML/XQuery/Constructor

Материал из Web эксперт
Перейти к: навигация, поиск

Constructor with boundary whitespace

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

let $prod := doc("Data.xml")//car[1] return
<ul>
  {  <li>  <b> id:</b> { $prod/id }  </li>   }
</ul>

Output:
<?xml version="1.0" encoding="UTF-8"?>
<ul>
   <li>
      <b> id:</b>
      <id>0001</id>
   </li>
</ul>



Simple computed constructor

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
element html {
  element h1 { "car order" },
  element ul {
    for $prod in doc("Data.xml")/order/car
    return element li {"id:",data($prod/id),", name:",data($prod/name)}
  }
}

Output:
<?xml version="1.0" encoding="UTF-8"?>
<html>
   <h1>car order</h1>
   <ul>
      <li>id: 0001 , name: name 1</li>
      <li>id: 0002 , name: name 2</li>
      <li>id: 0003 , name: name 3</li>
   </ul>
</html>