gpt4 book ai didi

sql - 使用 XQuery 替换 SQL Server 中的 xml 命名空间前缀

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:59 24 4
gpt4 key购买 nike

我在现有 SQL Server 2005 数据库表中有一个 xml 结构,其中定义了特定的命名空间,我需要查询 XML 并在此过程中更改命名空间前缀以成为默认命名空间。旧的 xml 具有在根节点和子节点上定义的 namespace ,我知道如何足够轻松地替换根节点,但不知道子节点的 namespace 。

当前数据:

<sg:Settings xmlns:sg="uri:mynamespace">
<sg:SomeData xmlns:sg="uri:mynamespace"/>
</sg:Settings>

使用 SQL:

WITH XMLNAMESPACES 
('uri:mynamespace' as sg)
SELECT
settingsNode.query('<Settings xmlns="uri:mynamespace"> { sg:SomeData } </Settings> ')
FROM
SettingsTable CROSS APPLY
SettingsXml.nodes('/sg:Settings') T(settingsNode)

我可以得到以下信息:

<Settings xmlns="uri:mynamespace">
<sg:SomeData xmlns:sg="uri:mynamespace"/>
</Settings>

但我正在尝试得到这个:

<Settings xmlns="uri:mynamespace">
<SomeData/>
</Settings>

有没有办法使用 SQL XQuery 合并命名空间?

最佳答案

如果你想用空格替换它

update tbl_Archive set XML.modify('delete /*:Document/*:Volume[text()]/@xmlns:sg')

关于sql - 使用 XQuery 替换 SQL Server 中的 xml 命名空间前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/846354/

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