我創建包含動態數據的一個元素 -
XQUERY
let $sttag:= concat('<', '/')
return concat ($sttag, "newTag")
上述XQuery返回輸出作爲</newTag
代替</newTag
。
它有什麼辦法用xquery打印「<」和「>」?
我創建包含動態數據的一個元素 -
XQUERY
let $sttag:= concat('<', '/')
return concat ($sttag, "newTag")
上述XQuery返回輸出作爲</newTag
代替</newTag
。
它有什麼辦法用xquery打印「<」和「>」?
我推薦使用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 { ... }
這裏是最多的插圖構建一個元素動態的方式 - 這個名字是不是在編譯時已知的,在每次執行一般是不同的:
let $name := translate(concat('N', current-time()), ':','_')
return
element {$name} {}
產生:
<N21_26_40.708-07_00/>
我只想補充一點,你的'newTag'也可以動態構造,例如'element {concat(「new」,「Tag」)} {...}'。 – joewiz 2012-04-20 21:07:15
我還想補充一點,您可以將XML元素直接放入xQuery中。我發現它比'element {}'語法更具可讀性。當我需要動態創建元素時,我只使用'element {}'語法。 – 2012-12-20 02:27:34