XQuery 添加元素

  • 定义和使用

    在下面的示例中,我们将使用 “books.xml” 文档(与前几章相同的XML文件)。
    如上一章所见,我们可以在结果中包括输入文档(“ books.xml”)中的元素和属性:
    for $x in doc("books.xml")/bookstore/book/title
    order by $x
    return $x
    上面的 XQuery 表达式将在结果中同时包含 title 元素和 lang 属性,如下所示:
    <title lang="en">Everyday Italian</title>
    <title lang="en">Harry Potter</title>
    <title lang="en">Learning XML</title>
    <title lang="en">XQuery Kick Start</title>
    上面的 XQuery 表达式以与输入文档中所述完全相同的方式返回 title 元素。
    现在,我们要向结果添加我们自己的元素和属性!
  • 添加HTML元素和文本

    现在,我们要向结果中添加一些HTML元素;我们将结果放入HTML列表-连同一些文本:
    <html>
    <body>
      <h1>Bookstore</h1>
      <ul>
      {
      for $x in doc("books.xml")/bookstore/book
      order by $x/title
      return <li>{data($x/title)}. Category: {data($x/@category)}</li>
      }
      </ul>
    </body>
    </html>
    上面的 XQuery 表达式将产生以下结果:
    <html>
    <body>
      <h1>Bookstore</h1>
      <ul>
        <li>Everyday Italian. Category: COOKING</li>
        <li>Harry Potter. Category: CHILDREN</li>
        <li>Learning XML. Category: WEB</li>
        <li>XQuery Kick Start. Category: WEB</li>
      </ul>
    </body>
    </html>
  • 向HTML元素添加属性

    接下来,我们要将 category 属性用作 HTML 列表中的 class 属性:
    <html>
    <body>
      <h1>Bookstore</h1>
      <ul>
      {
        for $x in doc("books.xml")/bookstore/book
        order by $x/title
        return <li class="{data($x/@category)}">{data($x/title)}</li>
      }
      </ul>
    </body>
    </html>
    上面的XQuery表达式将产生以下结果:
    <html>
    <body>
      <h1>Bookstore</h1>
      <ul>
        <li class="COOKING">Everyday Italian</li>
        <li class="CHILDREN">Harry Potter</li>
        <li class="WEB">Learning XML</li>
        <li class="WEB">XQuery Kick Start</li>
      </ul>
    </body>
    </html>