[英]XML how to remove namespace from all node except root?
I have following query:我有以下查询:
WITH XMLNAMESPACES ('https://www.my.namespace.com' as ns)
SELECT
Q.DocType AS [@typeP],
Q.RefNo AS [@idP],
Q.Id AS [@kode],
D.DocId AS [@idDoc],
N.NotId AS [@idNot],
CONVERT(char(10), N.CreDate, 126) AS [@date],
'Text' AS [TN/@Z],
@T2 AS [TN/T]
,(select Adr AS [Adr] from ##TEMP FOR XML PATH (''), type)
FROM
[DB].[dbo].[Q] AS Q
LEFT JOIN [DB].[dbo].[D] AS D ON Q.Id=D.Id
LEFT JOIN [DB].[dbo].[N] AS N ON D.DocId=N.DocuId
WHERE
Q.InboxId= Cast(@InboxId as varchar(15))
FOR XML PATH ('Not');
As result I get XML:结果我得到了 XML:
<Not xmlns:ns="https://www.my.namespace.com"
typeP="4532"
idP="90210"
kode="YCV06N1L-FMDA-YPXZ-5H4F-BLA75C6G86KI"
idDoc="49"
idNot="456"
date="2021-07-19">
<TN Text="T">
<T>some text</T>
</TN>
<Adr xmlns:ns="https://www.my.namespace.com">10800234</Adr>
<Adr xmlns:ns="https://www.my.namespace.com">24900005</Adr>
<Adr xmlns:ns="https://www.my.namespace.com">24900004</Adr>
<Adr xmlns:ns="https://www.my.namespace.com">10201026</Adr>
<Adr xmlns:ns="https://www.my.namespace.com">66600019</Adr>
<Adr xmlns:ns="https://www.my.namespace.com">14042243</Adr>
</Not>
How to remove namespace from Adr node?如何从 Adr 节点中删除命名空间? I would like to get:我想得到:
<Adr>10800234</Adr>
...
<Adr>14042243</Adr>
Please advise what I'm doing here incorrectly.请告知我在这里做的不正确。
I would be appreciate any solution.我将不胜感激任何解决方案。
Perhaps inelegant, but the most obvious solution is:也许不优雅,但最明显的解决方案是:
declare @Adr xml = (
select Adr AS [Adr]
from ##TEMP
FOR XML PATH (''), type
);
WITH WITH XMLNAMESPACES ('https://www.my.namespace.com' as ns)
SELECT
Q.DocType AS [@typeP],
Q.RefNo AS [@idP],
Q.Id AS [@kode],
D.DocId AS [@idDoc],
N.NotId AS [@idNot],
CONVERT(char(10), N.CreDate, 126) AS [@date],
'Text' AS [TN/@Z],
@T2 AS [TN/T],
@Adr
FROM
[DB].[dbo].[Q] AS Q
LEFT JOIN [DB].[dbo].[D] AS D ON Q.Id=D.Id
LEFT JOIN [DB].[dbo].[N] AS N ON D.DocId=N.DocuId
WHERE
Q.InboxId= Cast(@InboxId as varchar(15))
FOR XML PATH ('Not');
Which yields...哪个产生...
<Not xmlns:ns="https://www.my.namespace.com"
typeP="4532"
idP="90210"
kode="YCV06N1L-FMDA-YPXZ-5H4F-BLA75C6G86KI"
idDoc="49"
idNot="456"
date="2021-07-19">
<TN Z="Text">
<T>some text</T>
</TN>
<Adr>10800234</Adr>
<Adr>24900005</Adr>
<Adr>24900004</Adr>
<Adr>10201026</Adr>
<Adr>66600019</Adr>
<Adr>14042243</Adr>
</Not>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.