与 XPath 结合
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>