如何在查询中声明名称空间?
声明命名空间时会出现错误。
Declare @Mydoc xml
set @Mydoc = (
select importe, algo,XD,
(select impuesto,tasa,transferencia
from CfdiDet
for xml raw('cfdi_detalle'),type)
from cfdienc
for xml raw('cfdi_encabezado'),type)这是我遇到麻烦的地方
set @Mydoc.modify('declare xmlnamespaces ('uri',cfdi')我想用"_"替换":"
发布于 2017-11-29 21:40:41
命名空间前缀不仅仅是您可以使用.modify()操作的字符串的一部分.那么,您可以将XML转换为string,执行REPLACE并将其转换回XML。但是正确的方法是声明名称空间。
要声明名称空间,可以使用WITH XMLNAMESPACES或使用隐式命名空间声明(在您的情况下不可能)。
尝尝这个
DECLARE @Mydoc XML;
WITH XMLNAMESPACES('uri' AS cfdi)
SELECT @Mydoc=
(
SELECT 'SomeDummy' AS importe
FOR XML RAW('cfdi:encabezado'),TYPE
);
SELECT @Mydoc 结果
<cfdi:encabezado xmlns:cfdi="uri" importe="SomeDummy" />https://stackoverflow.com/questions/47558747
复制相似问题