Principales respuestas
cargar un xml a sql server

Pregunta
-
Buena tarde comunidad alguien podría orientarme en como cargar el siguiente xml con el siguiente formato:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<lco:identificador clave="CA57105FS1">
<lco:Certificado Validez="2" EstatusCertificado="A" noCertificado="09693730" FechaFinal="2022-02-26T21:10:10" FechaInicio="2018-02-26T21:10:10"></lco:Certificado></lco:identificador >
gracias por la ayuda, saludos.
Respuestas
-
Hola killer1923:
Depende de como lo quieras guardar.
Con tú ejemplo, 3 opciones:
DROP TABLE IF EXISTS tbldatos; CREATE TABLE tblDatos (id INT IDENTITY(1, 1), datosXml XML, docXml NVARCHAR(MAX), datosXmlNamespace XML ); GO DECLARE @xmlNamespace XML; SET @xmlNamespace = N' <lco:identificador xmlns:lco="http://www.w3.org/TR/html4/" clave="CA57105FS1"> <lco:Certificado Validez="2" EstatusCertificado="A" noCertificado="09693730" FechaFinal="2022-02-26T21:10:10" FechaInicio="2018-02-26T21:10:10"></lco:Certificado></lco:identificador >'; DECLARE @xml XML; SET @xml = N' <identificador clave="CA57105FS1"> <Certificado Validez="2" EstatusCertificado="A" noCertificado="09693730" FechaFinal="2022-02-26T21:10:10" FechaInicio="2018-02-26T21:10:10"></Certificado></identificador >'; DECLARE @docXml NVARCHAR(MAX); SET @docXml = N'<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <identificador clave="CA57105FS1"> <Certificado Validez="2" EstatusCertificado="A" noCertificado="09693730" FechaFinal="2022-02-26T21:10:10" FechaInicio="2018-02-26T21:10:10"></Certificado></identificador >'; INSERT INTO tblDatos (datosXml, docXml, datosXmlNamespace ) VALUES (@xml, @docXml, @xmlNamespace );
Como datos XML sin esquema definido, solo tienes que quitarle el namespace al XML y la definición de documento.
Como nVarchar, donde guardas completo el texto, como tal.
Como datos XML sin esquema definido, identificando el namespace al que pertenecen los datos.
- Marcado como respuesta killer1923 viernes, 21 de junio de 2019 14:47
Todas las respuestas
-
Hola killer1923:
Depende de como lo quieras guardar.
Con tú ejemplo, 3 opciones:
DROP TABLE IF EXISTS tbldatos; CREATE TABLE tblDatos (id INT IDENTITY(1, 1), datosXml XML, docXml NVARCHAR(MAX), datosXmlNamespace XML ); GO DECLARE @xmlNamespace XML; SET @xmlNamespace = N' <lco:identificador xmlns:lco="http://www.w3.org/TR/html4/" clave="CA57105FS1"> <lco:Certificado Validez="2" EstatusCertificado="A" noCertificado="09693730" FechaFinal="2022-02-26T21:10:10" FechaInicio="2018-02-26T21:10:10"></lco:Certificado></lco:identificador >'; DECLARE @xml XML; SET @xml = N' <identificador clave="CA57105FS1"> <Certificado Validez="2" EstatusCertificado="A" noCertificado="09693730" FechaFinal="2022-02-26T21:10:10" FechaInicio="2018-02-26T21:10:10"></Certificado></identificador >'; DECLARE @docXml NVARCHAR(MAX); SET @docXml = N'<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <identificador clave="CA57105FS1"> <Certificado Validez="2" EstatusCertificado="A" noCertificado="09693730" FechaFinal="2022-02-26T21:10:10" FechaInicio="2018-02-26T21:10:10"></Certificado></identificador >'; INSERT INTO tblDatos (datosXml, docXml, datosXmlNamespace ) VALUES (@xml, @docXml, @xmlNamespace );
Como datos XML sin esquema definido, solo tienes que quitarle el namespace al XML y la definición de documento.
Como nVarchar, donde guardas completo el texto, como tal.
Como datos XML sin esquema definido, identificando el namespace al que pertenecen los datos.
- Marcado como respuesta killer1923 viernes, 21 de junio de 2019 14:47
-
Muchas gracias por el apoyo Javi Fernández F, me queda mas claro , saludos