none
XML + Datos de tabla RRS feed

  • Pregunta

  • Estimados.

    Tengo un XML con datos que debo llenar, ejemplo:

    <?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
    <ficha>
    <nombre>  </nombre>
    <apellido>  </apellido>
    <direccion>  </direccion>
    </ficha>

    Tengo en un SQL 2012 una tabla que contiene 100 clientes que en este caso contiene los campos necesarios.

    Necesito llenar/crear el XML con la estructura original y con los datos nombre,apellido y direccion de los 100 clientes.

    Saludos Cordiales.

    CristianPM


    DBA SQL Server Santiago/Chile

    martes, 30 de junio de 2015 18:39

Respuestas

  • [...] Pues actualmente me los muestra asi: [...]


    Tienes razón, hay que usar un XML PATH en lugar de XML RAW (como ya te han indicado en otra respuesta)

    No se nada de XML que opciones tengo para mostrar los 100 clientes

    Las opciones más típicas serían en primer lugar esta:

    <Clientes>
        <Cliente>
            <Nombre>...</Nombre>
            <Apellido>...</Apellido>
            etc
        </Cliente>
        <Cliente>
            <Nombre>...</Nombre>
            <Apellido>...</Apellido>
            etc
        </Cliente>
        ...
    </Clientes>

    Y en segundo lugar esta otra:

    <Clientes>
        <Cliente Nombre='...' Apellido='...' etc />
        <Cliente Nombre='...' Apellido='...' etc />
        <Cliente Nombre='...' Apellido='...' etc />
        ...
    </Clientes>
    

    martes, 30 de junio de 2015 20:52

Todas las respuestas

  • Puesto que la pregunta está en el foro de SQL Server, presumo que el XML lo quieres generar desde el lado servidor, y no desde código cliente. En ese caso, puedes generar el XML indicado con una sentencia de este estilo:

    Select nombre, apellido, direccion
    from laTabla
    for XML RAW('Ficha'), ROOT('Fichas')

    Nótese que te he añadido un nodo raíz, ya que en el ejemplo que pusiste sólo había un cliente y no indicaste cómo querías agrupar los 100 clientes que hay en la tabla.

    martes, 30 de junio de 2015 18:56
  • Estimado Alberto.

    Muchas gracias por responder, y si, la idea es generarlo al lado del servidor.

    No se nada de XML que opciones tengo para mostrar los 100 clientes ?


    DBA SQL Server Santiago/Chile

    martes, 30 de junio de 2015 19:07
  • Es posible mostrarlos asi ?:

    <ficha>
    <nombre>  </nombre>
    <apellido>  </apellido>
    <direccion>  </direccion>
    </ficha>

    Pues actualmente me los muestra si:

    <Fichas>
      <Ficha nombre="Cristian" apellido="espindola" direccion="alguna direccion" />

      <Ficha nombre="Jose" apellido="espinoza" direccion="alguna direccion" />

    </Fichas>



    DBA SQL Server Santiago/Chile

    martes, 30 de junio de 2015 19:12
  • Que tal, podrías probar de esta manera:

    SELECT 
    	nombre, apellido, direccion
    FROM TuTabla
    FOR XML PATH ('Ficha'), ROOT ('Fichas')

    Saludos,


    Ayacucho - Perú
    Recuerda si mi solución atiende tu consulta por favor márcala como útil y como respuesta.

    http://litigiouslobo.blogspot.com/
    El Blog de Herbert Mendoza

    martes, 30 de junio de 2015 19:30
  • [...] Pues actualmente me los muestra asi: [...]


    Tienes razón, hay que usar un XML PATH en lugar de XML RAW (como ya te han indicado en otra respuesta)

    No se nada de XML que opciones tengo para mostrar los 100 clientes

    Las opciones más típicas serían en primer lugar esta:

    <Clientes>
        <Cliente>
            <Nombre>...</Nombre>
            <Apellido>...</Apellido>
            etc
        </Cliente>
        <Cliente>
            <Nombre>...</Nombre>
            <Apellido>...</Apellido>
            etc
        </Cliente>
        ...
    </Clientes>

    Y en segundo lugar esta otra:

    <Clientes>
        <Cliente Nombre='...' Apellido='...' etc />
        <Cliente Nombre='...' Apellido='...' etc />
        <Cliente Nombre='...' Apellido='...' etc />
        ...
    </Clientes>
    

    martes, 30 de junio de 2015 20:52