Skip to Main Content

DevOps, CI/CD and Automation

XMLSequence EXTRACT HEAD and DETAIL in ORACLE 9.2

1019748Jun 25 2013 — edited Jun 27 2013

Hi, sorry about my english i am from argentine.

I have this XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<arrayOfServicio >

    <Servicio>

        <Nombre>Autenticacion</Nombre>

        <Descripcion>ws</Descripcion>

        <Activo>true</Activo>

        <Version>1.0</Version>

        <MetodosEntity>

            <Metodo>

                <Nombre>RequestTicket</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

        </MetodosEntity>

    </Servicio>

    <Servicio>

        <Nombre>Consultas</Nombre>

        <Descripcion>wsConsultas</Descripcion>

        <Activo>true</Activo>

        <Version>1.0</Version>

        <MetodosEntity>

            <Metodo>

                <Nombre>GetVigencia</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

            <Metodo>

                <Nombre>GetSiniestralidad</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

            <Metodo>

                <Nombre>GetAgrupados</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

            <Metodo>

                <Nombre>GetSiniestralidadPorCuil</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

        </MetodosEntity>

    </Servicio>

    <Servicio>

        <Nombre>Referencias</Nombre>

        <Descripcion>wsReferencias</Descripcion>

        <Activo>true</Activo>

        <Version>1.0</Version>

        <MetodosEntity>

            <Metodo>

                <Nombre>TablaReferencia</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

            <Metodo>

                <Nombre>ListadoReferencia</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

        </MetodosEntity>

    </Servicio>

    <Servicio>

        <Nombre>General</Nombre>

        <Descripcion>WsGeneral</Descripcion>

        <Activo>true</Activo>

        <Version>1.0</Version>

        <MetodosEntity>

            <Metodo>

                <Nombre>GetServicios</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

        </MetodosEntity>

    </Servicio>

    <Servicio>

        <Nombre>eServicios</Nombre>

        <Descripcion>wseServicios</Descripcion>

        <Activo>true</Activo>

        <Version>1.0</Version>

        <MetodosEntity>

            <Metodo>

                <Nombre>SetComunicacion</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

        </MetodosEntity>

    </Servicio>

    <Servicio>

        <Nombre>VentanillaART</Nombre>

        <Descripcion>wsVentanillaART</Descripcion>

        <Activo>true</Activo>

        <Version>1.0</Version>

        <MetodosEntity>

            <Metodo>

                <Nombre>ObtenerNovedades</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

        </MetodosEntity>

    </Servicio>

    <Servicio>

        <Nombre>Establecimientos</Nombre>

        <Descripcion>wsEstablecimiento</Descripcion>

        <Activo>true</Activo>

        <Version>1.0</Version>

        <MetodosEntity>

            <Metodo>

                <Nombre>GetConsultaPorCuit</Nombre>

                <Activo>true</Activo>

                <Version>1.0</Version>

            </Metodo>

        </MetodosEntity>

    </Servicio>

</arrayOfServicio>

I am working in ORACLE 9.2 and i wrote this query but the result is not correct, i need to join HEAD and DETAIL in some way but cannot do that...

  select extractvalue(value(head),'//Servicio/Nombre/text()') ,

        extractvalue(value(head),'//Servicio/Descripcion/text()'),

        extractvalue(value(head),'//Servicio/Activo/text()'),

        extractvalue(value(head),'//Servicio/Version/text()')

        ,extractvalue(value(detail),'//Metodo/Nombre/text()')

        ,extractvalue(value(detail),'//Metodo/Activo/text()')

        ,extractvalue(value(detail),'//Metodo/Version/text()')

  from arwt_ws_return x

      , table(xmlsequence(extract (x.x_xmldoc, '/arrayOfServicio/Servicio'))) head

      , table(xmlsequence(extract (x.x_xmldoc, '/arrayOfServicio/Servicio/MetodosEntity/Metodo'))) detail;

Ii really appreciate your help.

Thanks!

This post has been answered by odie_63 on Jun 26 2013
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 25 2013
Added on Jun 25 2013
2 comments
1,671 views