如果我已经拥有 XML 中的数据,我该如何将其保存在表格中?

问题描述

我已经有了来自 XML 的信息,但我的问题是,如何将其保存在本地表中?

DECLARE @docHandle int  
DECLARE @xmlDocument xml  
SET @xmlDocument = '
<Comprobante Fecha="2020-05-30" SubTotal="1324.56" Moneda="MXN" Total="1398.95" TipodeComprobante="I" MetodoPago="PPD">
    <Emisor Rfc="SIH9511279T7" Nombre="HEB" RegimenFiscal="601"/>
    <Receptor Rfc="XXXX123456XXX" Nombre="USER" UsoCFDI="G03"/>
    <Conceptos>
        <Concepto ClaveProdServ="50404600" Cantidad="1.00" ClaveUnidad="H87" Unidad="PZ" Descripcion="LECHUGA" ValorUnitario="43.95" Importe="43.95">
            <Impuestos>
                <Traslados>
                    <Traslado Base="43.95" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
                    <Traslado Base="43.95" Impuesto="001" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="16.00"/>
                </Traslados>
            </Impuestos>
        </Concepto>
        <Concepto ClaveProdServ="42141606" Cantidad="1.00" ClaveUnidad="H87" Unidad="PZ" Descripcion="HUGGIES" ValorUnitario="438.79" Importe="438.79">
                <Impuestos>
                    <Traslados>
                        <Traslado Base="438.79" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="70.21"/>
                        <Traslado Base="438.79" Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.080000" Importe="7.23"/>
                    </Traslados>
                </Impuestos>
        </Concepto>
    </Conceptos>
    <Impuestos TotalImpuestosTrasladados="74.39">
        <Traslados>
            <Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="70.21"/>
            <Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
            <Traslado Impuesto="003" TipoFactor="Tasa" TasaOCuota="0.080000" Importe="4.18"/>
        </Traslados>
    </Impuestos>
    <Complemento>
        <TimbreFiscalDigital Version="1.1" UUID="21C9FD4A" FechaTimbrado="2020-06-30T10:58:01" RfcProvCertif="EEL961104G96"/>
    </Complemento>
</Comprobante>
'
EXEC sp_xml_preparedocument @docHandle OUTPUT,@xmlDocument  
SELECT * 
FROM OPENXML (@docHandle,'/Comprobante/Conceptos/Concepto/Impuestos/Traslados/Traslado/@Importe')  
       WITH ( Imp1          money           '.',Tasa          decimal(6,6)    '../@TasaOCuota',Descrip       varchar(100)    '../../../../@Descripcion',Imp2          money           '../../../../@Importe',TotImp        money           '/Comprobante/Impuestos/@TotalImpuestosTrasladados',RFCEmisor     varchar(13)     '/Comprobante/Emisor/@Rfc',Fecha         date            '/Comprobante/@Fecha',UUID          varchar(50)     '/Comprobante/Complemento//TimbreFiscalDigital/@UUID',RFCReceptor   varchar(13)     '/Comprobante/Receptor/@Rfc')  
EXEC sp_xml_removedocument @docHandle

结果如下:

Imp1 塔萨 描述 Imp2 TotImp RFCEmisor 费查 UUID RFC 接收器
0.00 0.000000 LECHUCA 43.95 74.39 SIH9511279T7 2020-05-30 21C9FD4A XXXX123456XXX
16.00 0.160000 LECHUGA 43.95 74.39 SIH9511279T7 2020-05-30 21C9FD4A XXXX123456XXX
70.21 0.160000 拥抱 438.79 74.39 SIH9511279T7 2020-05-30 21C9FD4A XXXX123456XXX
7.23 0.000000 拥抱 438.79 74.39 SIH9511279T7 2020-05-30 21C9FD4A XXXX123456XXX

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)