我一直在尝试使用xquery为传入的xml(来自队列)的元素赋值。即将到来的xml的格式为
<header><a></a><b></b><c></c></header>
我需要为目标系统设置常量值:
<header><a>1</a><b>2</b><c>3</c></header>
有什么想法吗?
答案 0 :(得分:1)
我不确定我是否完全理解你的问题,但我认为你想要复制输入并修改某些元素。使用XSLT最容易做到这一点。
要在XQuery中执行此操作,您需要一个递归函数来查看每个节点,在适当时修改它,并复制输出。根据您的描述,我假设您的输入仅包含元素节点,因此这是我考虑的唯一情况:
declare function local:apply($node as element())
{
typeswitch ($node)
case element(a) return <a>1</a>
case element(b) return <b>2</b>
case element(c) return <c>3</c>
default return element {name($node)} {local:apply($node/*)}
}