XML/XQuery/attribute

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

Search by attribute value

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>
    <publisher>publisher 1</publisher>
    <price>44.20</price>
  </book>
  <book year="2004">
    <title>title 2</title>
    <author>
      <last>E</last>
      <first>F</first>
    </author>
    <publisher>Publisher 2</publisher>
    <price>39.99</price>
  </book>
</bib>

File: Query.xquery
<myNewBib>{
doc("Data.xml")/bib/book[@year > 2005]
}</myNewBib>



Specifying attributes directly using XML-like syntax

File: Data.xml
<order>
  <car model="A">
    <num>1</num>
    <name language="en">name 1</name>
    <colorChoices>navy black</colorChoices>
  </car>
  <car model="B">
    <num>2</num>
    <name language="en">name 2</name>
  </car>
  <car model="B">
    <num>3</num>
    <name language="en">name 3</name>
  </car>
</order>
File: Query.xquery
<html>
<h1 class="carHdr">car order</h1>
<ul>{
  for $prod in doc("Data.xml")/order/car
  return <li dep="{$prod/@model}">num: {data($prod/num)
             }, name: {data($prod/name)}</li>
}</ul>
</html>

Output:
<?xml version="1.0" encoding="UTF-8"?>
<html>
   <h1 class="carHdr">car order</h1>
   <ul>
      <li dep="A">num: 1, name: name 1</li>
      <li dep="B">num: 2, name: name 2</li>
      <li dep="B">num: 3, name: name 3</li>
   </ul>
</html>