FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Leer archivo xml
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Leer archivo xml
Posted: Mon Nov 14, 2016 04: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 (fw): Select all Collapse
<?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 (fw): Select all Collapse
<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
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: Leer archivo xml
Posted: Tue Nov 15, 2016 08: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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Leer archivo xml
Posted: Tue Nov 15, 2016 09:25 PM

Horacio,

revisa FWH\samples\xmlreader.prg y xmltree.prg

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Leer archivo xml
Posted: Wed Nov 16, 2016 05: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

Continue the discussion