1
如何從類似於XSL的XSLT排除結果前綴屬性中排除結果前綴。XQuery排除結果前綴
目前,我的XQuery爲名稱空間生成名稱空間前綴,這些名稱空間不屬於結果集的一部分,但是屬於原始有效內容的一部分。
如何從類似於XSL的XSLT排除結果前綴屬性中排除結果前綴。XQuery排除結果前綴
目前,我的XQuery爲名稱空間生成名稱空間前綴,這些名稱空間不屬於結果集的一部分,但是屬於原始有效內容的一部分。
XQuery實際上並沒有像XSLT中的排除結果前綴那樣的內置功能。序列化擴展似乎也沒有幫助。因此,您必須在返回之前處理最終結果。應該不難。
xqueryfunctions網站的功能可能有所幫助,如functx:change-element-names-deep
(http://www.xqueryfunctions.com/xq/functx_change-element-names-deep.html),但這並不符合這裏的法案。所以,這裏有我自己更具體的解決方案:
declare function local:remove-prefixes($node as node(), $prefixes as xs:string*) {
typeswitch ($node)
case element()
return
if ($prefixes = ('#all', prefix-from-QName(node-name($node)))) then
element {QName(namespace-uri($node), local-name($node))} {
$node/@*,
$node/node()/local:remove-prefixes(., $prefixes)
}
else
element {node-name($node)} {
$node/@*,
$node/node()/local:remove-prefixes(., $prefixes)
}
case document-node()
return
document {
$node/node()/local:remove-prefixes(., $prefixes)
}
default
return $node
};
HTH!
顯示你的輸入,你想要的輸出,你的查詢和你的實際輸出。然後我們可以幫助您糾正您的查詢。 – 2011-12-22 17:48:45