首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从xmlns中删除:ns :ns使用sql

如何从xmlns中删除:ns :ns使用sql
EN

Stack Overflow用户
提问于 2015-07-17 16:58:19
回答 1查看 590关注 0票数 1

我想在SQL中创建一个XML,如下所示

代码语言:javascript
复制
<Root xmlns="http://www.example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.com http://www.example.com /media/XSD/123.xsd">
  <Header>
    <Node1>Test</Node1>
  </Header>
</Root>

为此,我使用了以下代码

代码语言:javascript
复制
declare @xml xml
;with xmlnamespaces ('http://www.w3.org/2001/XMLSchema-instance' as xsi,  'http://www.example.com ' as ns)
select 
    @xml = ((SELECT 'Test' as Node1   
             FOR XML PATH('Header'), ROOT('Root')));

set @xml.modify('insert(attribute xsi:schemaLocation {"http://www.example.com  http://www.example.com /media/XSD/123.xsd"}) into (/Root)[1]')                               
select @xml

但是输出是这样的:

代码语言:javascript
复制
<Root xmlns:ns="http://www.example.com " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.com  http://www.example.com /media/XSD/123.xsd">
  <Header>
    <Node1>Test</Node1>
  </Header>
</Root>

如何从xmlns:ns中删除:ns

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

发布于 2015-07-17 17:15:40

您需要将此XML名称空间用作默认名称空间(而不是指定ns前缀):

代码语言:javascript
复制
DECLARE @xml XML

;WITH XMLNAMESPACES('http://www.w3.org/2001/XMLSchema-instance' AS xsi,
                    DEFAULT 'http://www.example.com')
SELECT
    @xml = ((SELECT 'Test' as Node1   
             FOR XML PATH('Header'), ROOT('Root')));

SET @xml.modify('insert(attribute xsi:schemaLocation {"http://www.example.com  http://www.example.com /media/XSD/123.xsd"}) into (/Root)[1]');                               

这将为您提供所需的输出:

代码语言:javascript
复制
<Root xmlns="http://www.example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Header>
    <Node1>Test</Node1>
  </Header>
</Root>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31471953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档