与 XPath 结合

XQuery 教程 · 第 6 章 · 9 次浏览

XQuery 不仅能查 XML,还能生成新 XML:直接在表达式里写 XML 字面量,动态值用 { } 插入。这是 XML 报表、数据转换的核心。

元素构造

<result>{ 表达式 }</result>,大括号里放动态数据。属性、文本、子元素都能这样动态生成。

代码示例

(: 生成新 XML :)
<report>
  {
    for $book in doc("books.xml")//book
    where $book/price > 30
    return
      <item id="{ $book/@category }">
        <title>{ $book/title/text() }</title>
        <price>{ $book/price/text() }</price>
      </item>
  }
  <summary count="{ count(doc("books.xml")//book) }" />
</report>

(: 计算结果 :)
<total>{ sum(doc("books.xml")//price) }</total>