none
cargar un xml a sql server RRS feed

  • 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.

    viernes, 21 de junio de 2019 0:03

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.

    https://www.w3schools.com/xml/xml_namespaces.asp

    • Marcado como respuesta killer1923 viernes, 21 de junio de 2019 14:47
    viernes, 21 de junio de 2019 4:12

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.

    https://www.w3schools.com/xml/xml_namespaces.asp

    • Marcado como respuesta killer1923 viernes, 21 de junio de 2019 14:47
    viernes, 21 de junio de 2019 4:12
  • Muchas gracias por el apoyo Javi Fernández F, me queda mas claro , saludos
    viernes, 21 de junio de 2019 14:47