Parse an xml string with multiple and variable arraylist
jtemeDec 28 2011 — edited Dec 28 2011I have to parse this xml string (received from a Web Service) with PL/SQL.
Can somebody helpme?.
The xml is :
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://wsevaluarreglacondicioncomercial/" xmlns:ns1="http://wsevaluarreglacondicioncomercial/types/" xmlns:ns2="http://www.oracle.com/webservices/internal/literal"><env:Body><ns0:consultarCondicionComercialResponseElement><ns0:result xsi:type="ns1:ResPromociones"><ns1:mensaje>OK</ns1:mensaje><ns1:status>OK</ns1:status><ns1:instanciaProceso xsi:nil="1"/><ns1:atributoEventos xsi:type="ns2:arrayList" xsi:nil="1"/><ns1:variables xsi:type="ns2:arrayList" xsi:nil="1"/><ns1:condicionesComerciales xsi:type="ns2:arrayList"><ns2:item xsi:type="ns2:hashMap"><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">unidadMedida</ns2:key><ns2:value xsi:type="xsd:string">HOR</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoParque</ns2:key><ns2:value xsi:type="xsd:anyType" xsi:nil="1"/></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">emailPublicacion</ns2:key><ns2:value xsi:type="xsd:anyType" xsi:nil="1"/></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">nombreCondicionComercial</ns2:key><ns2:value xsi:type="xsd:string">PLAN COMUNIDAD CON TELEFONO 6</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">reglas</ns2:key><ns2:value xsi:type="ns2:arrayList"><ns2:item xsi:type="ns2:hashMap"><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">accion</ns2:key><ns2:value xsi:type="xsd:string">SECUMPLIO = 1;</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">descripcionRegla</ns2:key><ns2:value xsi:type="xsd:string">otra regla</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoOrigenDatos</ns2:key><ns2:value xsi:type="xsd:long">5000</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoRegla</ns2:key><ns2:value xsi:type="xsd:long">1730</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">nombreRegla</ns2:key><ns2:value xsi:type="xsd:string">REGLA002</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">condicion</ns2:key><ns2:value xsi:type="xsd:string">ESTADO = "DECEPCION"</ns2:value></ns2:mapEntry></ns2:item><ns2:item xsi:type="ns2:hashMap"><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">accion</ns2:key><ns2:value xsi:type="xsd:string">SECUMPLIO = 1;</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">descripcionRegla</ns2:key><ns2:value xsi:type="xsd:string">dsaf</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoOrigenDatos</ns2:key><ns2:value xsi:type="xsd:long">5000</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoRegla</ns2:key><ns2:value xsi:type="xsd:long">1731</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">nombreRegla</ns2:key><ns2:value xsi:type="xsd:string">REGLA001</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">condicion</ns2:key><ns2:value xsi:type="xsd:string">ESTADO = "ACTIV"</ns2:value></ns2:mapEntry></ns2:item></ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">tiempoMaximoAprobacion</ns2:key><ns2:value xsi:type="xsd:decimal">24</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">usuario</ns2:key><ns2:value xsi:type="xsd:string">valiente</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">periodoVidaFin</ns2:key><ns2:value xsi:type="xsd:dateTime">2011-12-31T00:00:00.000-03:00</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">versionGrupoReglas</ns2:key><ns2:value xsi:type="xsd:decimal">895</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">estado</ns2:key><ns2:value xsi:type="xsd:string">VIGENTE</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">fechaHora</ns2:key><ns2:value xsi:type="xsd:dateTime">2011-12-12T16:09:16.000-03:00</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigo</ns2:key><ns2:value xsi:type="xsd:decimal">172</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">periodoVidaInicio</ns2:key><ns2:value xsi:type="xsd:dateTime">2011-12-01T00:00:00.000-03:00</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">versionCondicionComercial</ns2:key><ns2:value xsi:type="xsd:decimal">336</ns2:value></ns2:mapEntry></ns2:item><ns2:item xsi:type="ns2:hashMap"><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">unidadMedida</ns2:key><ns2:value xsi:type="xsd:string">HOR</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoParque</ns2:key><ns2:value xsi:type="xsd:anyType" xsi:nil="1"/></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">emailPublicacion</ns2:key><ns2:value xsi:type="xsd:anyType" xsi:nil="1"/></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">nombreCondicionComercial</ns2:key><ns2:value xsi:type="xsd:string">PLAN COMUNIDAD CON TELEFONO 5</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">reglas</ns2:key><ns2:value xsi:type="ns2:arrayList"><ns2:item xsi:type="ns2:hashMap"><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">accion</ns2:key><ns2:value xsi:type="xsd:string">SECUMPLIO = 1;</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">descripcionRegla</ns2:key><ns2:value xsi:type="xsd:string">fdksjafkl</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoOrigenDatos</ns2:key><ns2:value xsi:type="xsd:long">5000</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigoRegla</ns2:key><ns2:value xsi:type="xsd:long">1713</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">nombreRegla</ns2:key><ns2:value xsi:type="xsd:string">REGLA001</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">condicion</ns2:key><ns2:value xsi:type="xsd:string">ESTADO = "ACTIV"</ns2:value></ns2:mapEntry></ns2:item></ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">tiempoMaximoAprobacion</ns2:key><ns2:value xsi:type="xsd:decimal">24</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">usuario</ns2:key><ns2:value xsi:type="xsd:string">valiente</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">periodoVidaFin</ns2:key><ns2:value xsi:type="xsd:dateTime">2011-12-31T00:00:00.000-03:00</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">versionGrupoReglas</ns2:key><ns2:value xsi:type="xsd:decimal">876</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">estado</ns2:key><ns2:value xsi:type="xsd:string">VIGENTE</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">fechaHora</ns2:key><ns2:value xsi:type="xsd:dateTime">2011-12-09T12:11:29.000-03:00</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">codigo</ns2:key><ns2:value xsi:type="xsd:decimal">170</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">periodoVidaInicio</ns2:key><ns2:value xsi:type="xsd:dateTime">2011-12-01T00:00:00.000-03:00</ns2:value></ns2:mapEntry><ns2:mapEntry xsi:type="ns2:mapEntry"><ns2:key xsi:type="xsd:string">versionCondicionComercial</ns2:key><ns2:value xsi:type="xsd:decimal">313</ns2:value></ns2:mapEntry></ns2:item></ns1:condicionesComerciales><ns1:listaVariables xsi:type="ns2:arrayList" xsi:nil="1"/><ns1:parametros xsi:type="ns2:arrayList" xsi:nil="1"/><ns1:promociones xsi:type="ns2:arrayList" xsi:nil="1"/></ns0:result></ns0:consultarCondicionComercialResponseElement></env:Body></env:Envelope>
Thanks!