gpt4 book ai didi

sql-server - SQL Server XML 修改删除没有属性或内部文本的节点

转载 作者:行者123 更新时间:2023-12-02 23:49:40 25 4
gpt4 key购买 nike

我需要能够删除具有任何名称的所有节点,只要(a) 该节点没有属性 (b) 该节点有没有内部文本。

示例 XML:


<mydoc>
<delete_me />
<keep_me value="yes!" />
<but_do_not_keep_me></but_do_not_keep_me>
<should_you_keep_me>Absolutely!</should_you_keep_me>
</mydoc>

预期输出是


<mydoc>
<keep_me value="yes!" />
<should_you_keep_me>Absolutely!</should_you_keep_me>
</mydoc>

我已经计算出了满足一个或另一个条件的查询。


@xml.modify('delete //*[empty(@*)]')

这只会保留具有属性的元素。同样,


@xml.modify('delete //*[empty(node())]')

将删除所有空节点。但我不知道如何实现这两点。如果我尝试建立联盟 | ,这给了我错误 XQuery [modify()]: The XQuery syntax 'union' is not supported. .

有什么建议吗?

最佳答案

根据上面 @ZLK 的评论,允许使用 and 关键字。


@xml.modify('删除//*[空(node()) 和空(@*)]')

工作完美。

关于sql-server - SQL Server XML 修改删除没有属性或内部文本的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45685123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com