将值分配给元素节点时,使用XQuery删除xsi:nil = true

时间:2012-07-26 15:07:06

标签: xml xpath xquery xml-nil

有人可以帮助我实现以下目标:

  • 当元素具有指定值时,如何在XQuery中删除属性xsi:nil =“true”?

如果元素具有空值,则保留xsi:nil =“true”。

日Thnx。

1 个答案:

答案 0 :(得分:0)

您可以使用XQuery Update来实现此目的,例如:像这样:

declare variable $e := <entry nil="true" />;

if ($e/@nil != "null") then (
copy $c := $e
modify (
  delete node $c/@nil
)
return $c
)
else $e

请注意,xquery中没有实际的空值,因为您可能熟悉Java等语言。因此,我在这里使用了一个简单的字符串来表示空值,您可能想要更改它。

此外,请注意,此函数不返回没有该属性的同一节点,而是复制节点并返回此新修改的节点而不使用nil属性。