Leer archivo xml

Leer archivo xml

Postby horacio » Mon Nov 14, 2016 4:29 pm

Colegas, estoy utilizando la clase TXmlDocument para leer un archivo xml pero me encuentro con algunas dificultades. Este es el archivo que pretendo leer

Code: Select all  Expand view

<?xml version="1.0" encoding="UTF-8"?>
<presentacion>
    <periodo>2016</periodo>
    <nroPresentacion>7</nroPresentacion>
    <fechaPresentacion>2016-10-23</fechaPresentacion>
    <empleado>
        <cuit>27177655029</cuit>
        <tipoDoc>80</tipoDoc>
        <apellido>ARIAS</apellido>
        <nombre>MARIA ALEJANDRA</nombre>
        <direccion>
            <provincia>0</provincia>
            <cp>1426</cp>
            <localidad>Ciudad de Buenos Aires</localidad>
            <calle>HERNANDEZ JOSE</calle>
            <nro>2080</nro>
            <piso>6</piso>
            <dpto>B</dpto>
        </direccion>
    </empleado>
    <cargasFamilia>
        <cargaFamilia>
            <tipoDoc>86</tipoDoc>
            <nroDoc>27434416693</nroDoc>
            <apellido>DI GIOIA MARTINA BELEN</apellido>
            <nombre></nombre>
            <fechaNac>2001-06-07</fechaNac>
            <mesDesde>1</mesDesde>
            <mesHasta>12</mesHasta>
            <parentesco>3</parentesco>
            <vigenteProximosPeriodos>S</vigenteProximosPeriodos>
        </cargaFamilia>
        <cargaFamilia>
            <tipoDoc>86</tipoDoc>
            <nroDoc>27392106583</nroDoc>
            <apellido>DI GIOIA MARIA VICTORIA</apellido>
            <nombre></nombre>
            <fechaNac>1995-07-05</fechaNac>
            <mesDesde>1</mesDesde>
            <mesHasta>12</mesHasta>
            <parentesco>3</parentesco>
            <vigenteProximosPeriodos>S</vigenteProximosPeriodos>
        </cargaFamilia>
    </cargasFamilia>
    <deducciones>
        <deduccion tipo="1">
            <tipoDoc>80</tipoDoc>
            <nroDoc>30546741253</nroDoc>
            <denominacion>OSDE ORGANIZACION DE SERVICIOS DIRECTOS EMPRESARIOS</denominacion>
            <descBasica>30546741253 - OSDE ORGANIZACION DE SERVICIOS DIRECTOS EMPRESARIOS</descBasica>
            <montoTotal>5908.52</montoTotal>
            <periodos>
                <periodo mesDesde="1" mesHasta="1" montoMensual="167"/>
                <periodo mesDesde="2" mesHasta="2" montoMensual="660.63"/>
                <periodo mesDesde="3" mesHasta="3" montoMensual="838.01"/>
                <periodo mesDesde="4" mesHasta="4" montoMensual="657.24"/>
                <periodo mesDesde="5" mesHasta="5" montoMensual="1206.89"/>
                <periodo mesDesde="6" mesHasta="6" montoMensual="171.55"/>
                <periodo mesDesde="7" mesHasta="7" montoMensual="1380.39"/>
                <periodo mesDesde="8" mesHasta="8" montoMensual="826.81"/>
            </periodos>
        </deduccion>
        <deduccion tipo="8">
            <tipoDoc>86</tipoDoc>
            <nroDoc>27174329465</nroDoc>
            <denominacion>BLANCO VIRGINIA</denominacion>
            <descBasica>27174329465 - BLANCO VIRGINIA</descBasica>
            <montoTotal>66226</montoTotal>
            <periodos>
                <periodo mesDesde="1" mesHasta="2" montoMensual="5498"/>
                <periodo mesDesde="3" mesHasta="5" montoMensual="6498"/>
                <periodo mesDesde="6" mesHasta="6" montoMensual="9684"/>
                <periodo mesDesde="7" mesHasta="9" montoMensual="8684"/>
            </periodos>
        </deduccion>
    </deducciones>
</presentacion>
 


Puedo leer los datos siempre y cuando las etiquetas estén abiertas y cerradas en la misma linea pero tengo otros datos que no siguen ese formato, por ej.

Code: Select all  Expand view

<deduccion tipo="1">
    <tipoDoc>80</tipoDoc>
    <nroDoc>30546741253</nroDoc>
    <denominacion>OSDE ORGANIZACION DE SERVICIOS DIRECTOS EMPRESARIOS</denominacion>
    <descBasica>30546741253 - OSDE ORGANIZACION DE SERVICIOS DIRECTOS EMPRESARIOS</descBasica>
    <montoTotal>5908.52</montoTotal>
    <periodos>
        <periodo mesDesde="1" mesHasta="1" montoMensual="167"/>
        <periodo mesDesde="2" mesHasta="2" montoMensual="660.63"/>
        <periodo mesDesde="3" mesHasta="3" montoMensual="838.01"/>
        <periodo mesDesde="4" mesHasta="4" montoMensual="657.24"/>
        <periodo mesDesde="5" mesHasta="5" montoMensual="1206.89"/>
        <periodo mesDesde="6" mesHasta="6" montoMensual="171.55"/>
        <periodo mesDesde="7" mesHasta="7" montoMensual="1380.39"/>
        <periodo mesDesde="8" mesHasta="8" montoMensual="826.81"/>
    </periodos>
</deduccion>
 


En este caso necesitaria leer <deduccion tipo="1"> y los periodos pero no he encontrado la forma de hacerlo, Alguien tiene experiencia en esto. Desde ya muchísimas gracias.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: Leer archivo xml

Postby MarioG » Tue Nov 15, 2016 8:56 pm

Horacio;
Sin analizar en profundidad tu codigo, te comento, hay varios samples en la carpeta homónima y, si mal no recuerdo con XMLs de prueba como el que mencionas.
Tambien si escribis en el buscador del foro, vas a encontrar bastante documentacion
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Leer archivo xml

Postby Antonio Linares » Tue Nov 15, 2016 9:25 pm

Horacio,

revisa FWH\samples\xmlreader.prg y xmltree.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Leer archivo xml

Postby horacio » Wed Nov 16, 2016 5:03 pm

Gracias a ambos por sus respuestas, había probado xmlreader y algunos nodos no los leia, no sabía de la existencia de xmltree. Funciona perfectamente. Nuevamente gracias.

Saludos
horacio
 
Posts: 1358
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 94 guests