如何打印“<”和“>”使用XQuery?

时间:2012-04-20 09:32:27

标签: xml xquery xquery-sql

例如

我正在创建一个包含动态数据的元素 -

XQUERY
let $sttag:=  concat('<', '/')
return concat ($sttag, "newTag")

以上XQuery将输出返回为&lt;/newTag而不是</newTag

有没有办法打印“&lt;”和“&gt;”使用xquery?

2 个答案:

答案 0 :(得分:2)

我建议使用XQuery's element constructors。您可以使用computed element constructor动态创建元素:

element book { 
    attribute isbn {"isbn-0060229357" }, 
    element title { "Harold and the Purple Crayon"},
    element author { 
        element first { "Crockett" }, 
        element last {"Johnson" }
    }
}

结果

<book isbn="isbn-0060229357">
    <title>Harold and the Purple Crayon</title>
    <author>
        <first>Crockett</first>
        <last>Johnson</last>
    </author>
</book>

(来自W3C XQuery specs的例子)

在您的情况下,您可以使用

element newTag { ... }

答案 1 :(得分:2)

以下是构建元素的最动态方式的说明 - 名称在编译时是未知的,并且在每次执行时通常都是不同的

let $name := translate(concat('N', current-time()), ':','_')
  return
      element {$name} {}

<强>产生

<N21_26_40.708-07_00/>