使用XQuery设置常量值

时间:2010-12-07 06:26:25

标签: xml xquery

我一直在尝试使用xquery为传入的xml(来自队列)的元素赋值。即将到来的xml的格式为

<header><a></a><b></b><c></c></header>

我需要为目标系统设置常量值:

<header><a>1</a><b>2</b><c>3</c></header>

有什么想法吗?

1 个答案:

答案 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/*)}
}