Xml XQuery排除结果前缀
如何从与XSL中的XSLT exclude result prefixes属性类似的XQuery中排除结果前缀Xml XQuery排除结果前缀,xml,xquery,Xml,Xquery,如何从与XSL中的XSLT exclude result prefixes属性类似的XQuery中排除结果前缀 目前,我的XQuery为不属于结果集的名称空间生成名称空间前缀,但这些名称空间是原始负载的一部分。XQuery实际上没有XSLT中排除结果前缀这样的内置功能。序列化扩展在这方面似乎也没有帮助。因此,在返回最终结果之前,您必须自己处理最终结果。不过应该不难 xqueryfunctions网站有一些功能可以提供帮助,比如functx:change element names deep(),
目前,我的XQuery为不属于结果集的名称空间生成名称空间前缀,但这些名称空间是原始负载的一部分。XQuery实际上没有XSLT中排除结果前缀这样的内置功能。序列化扩展在这方面似乎也没有帮助。因此,在返回最终结果之前,您必须自己处理最终结果。不过应该不难 xqueryfunctions网站有一些功能可以提供帮助,比如
functx:change element names deep
(),但这并不符合这里的要求。因此,我有一个更具体的解决方案:
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
};
嗯 显示输入、所需输出、查询和实际输出。然后我们可以帮助您更正您的查询。