【发布时间】:2017-12-01 17:50:08
【问题描述】:
我有以下问题,我需要删除“cfdi:”的“cfdi_”
我使用命名空间来解决这个问题,但是它们被每个节点重复,我无法消除它们,如果你能帮助我,我将不胜感激
declare @Mydoc xml;
set @Mydoc = (SELECT
'' as importe,
(SELECT Importe, TasaCuota, TipoFactor, Impuesto, Base
FROM CDFIDet
FOR XML RAW('cfdi_traslado'), TYPE, ROOT('cfdi_traslados'))
FROM
CFDIENC
FOR XML RAW('cfdi_gatito'),type)
SELECT @Mydoc;
结果1:
<cfdi:gatito importe="">
<cfdi:traslados>
<cfdi:traslado Importe="1920" TasaCuota="0" TipoFactor="Tasa" Impuesto="16" Base="240" />
<cfdi:traslado Importe="2202" TasaCuota="0" TipoFactor="TASA" Impuesto="16" Base="450" />
</cfdi:traslados>
</cfdi:gatito>
第二次尝试:
declare @Mydoc xml;
WITH xmlnamespaces ('uri' as cfdi)
SELECT @Mydoc = (SELECT
'' AS importe,
(SELECT Importe, TasaCuota, TipoFactor, Impuesto, Base
FROM CDFIDet
FOR XML RAW('cfdi:traslado'), TYPE, ROOT('cfdi:traslados'))
FROM CFDIENC
FOR XML RAW('cfdi:gatito'), TYPE)
SELECT @Mydoc;
结果:
<cfdi:gatito xmlns:cfdi="uri" importe="">
<cfdi:traslados xmlns:cfdi="uri">
<cfdi:traslado Importe="1920" TasaCuota="0" TipoFactor="Tasa" Impuesto="16" Base="240" />
<cfdi:traslado Importe="2202" TasaCuota="0" TipoFactor="TASA" Impuesto="16" Base="450" />
</cfdi:traslados>
</cfdi:gatito>
我的代码比较大,重复次数太多不知道怎么消除
【问题讨论】:
-
XML 支持高度特定于供应商 - 所以请添加一个标签来指定您是否使用
mysql、postgresql、sql-server、oracle或db2- 或完全不同的东西。 -
这是 sql server 但我不会让你放那个标签,因为我还是新手
-
那么想要的结果是什么?
-
第一个结果
标签: sql sql-server xml