FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Alternativa a hbxml
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Alternativa a hbxml
Posted: Mon Apr 10, 2023 01:31 PM
Estimados compañeros del Foro...
Estoy buscando una alternativa a hbxml para manejar archivos de ese tipo y parsearlos.
Me han dejado bien impresionado dos lib en C que llevan mucho tiempo de desarrollo y está aún en actividad con recientes actualizaciones y que además son gratis.
Estas lib son LibXml2 y TinyXml,
En chatGPT las recomiendan para utilizarse con harbour para el manejo de archivos XML
Quisiera saber si alguien las ha compilado en Borland C y tiene un wrapper para estas librería.
O si me podrá orientar para hacerlo o sugerirme alguna otra alternativa.
Desde ya gracias. :D
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Alternativa a hbxml
Posted: Mon Apr 10, 2023 06:22 PM
Estimado Jose,

Que problema tienes con las funciones de uso de XML propias de Harbour ?

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

veras que usan los ficheros XML correctamente :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Alternativa a hbxml
Posted: Tue Apr 11, 2023 04:00 PM
Antonio, he hecho varias pruebas y tal vez soy yo que no agarro la soga, pero no logro entenderlo y al funcionar no obtengo el resultado deseado.
Te mando exe, código y ejecutable simplificados en este zip

https://mega.nz/file/rJoBmazC#ptetxZVAowo0ydUmu0cI2lIp79aAtLryNncalZt-jag
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Alternativa a hbxml
Posted: Tue Apr 11, 2023 04:25 PM
buenos dias porque no asi
Code (fw): Select all Collapse
#include "Fivewin.ch"
#include "hbxml.ch"
#include "xbrowse.ch"

FUNCTION Testxml()

    local aCods, aNoms, i, cTexto := hb_memoread( 'producto.xml') , aProd

     aCods = sacavalvariostag( "<ProductCode>", "</ProductCode>", cTexto  )
     aNoms = sacavalvariostag( "<ProductDesc>", "</ProductDesc>", cTexto  )

     aProd = {}



     for i = 2 to len( aCods )
         aadd( aProd, { 'ProductCode' => aCods[i], ;
                        'ProductDesc' => aNoms[i] } )
     next

    xbrowser aProd

RETURN

function sacavaltag( cTag, cUnTag, cTexto )

    local cVal
    local nAt1 //:= at( cTag   , cTexto )
    local nAt2 //:= at( cUnTag , cTexto )

    //cTexto = fe_pharsehtml( cTexto )
    nAt1 := at( cTag   , cTexto )
    nAt2 := at( cUnTag , cTexto )

    /*
    if '<' $ ctexto
        cTag   = '<'  + substr( cTag, 2   )
        cUnTag = '</' + substr( cUnTag, 3 )
        nAt1   = at( cTag   , cTexto )
        nAt2   = at( cUnTag , cTexto )
    end
    */

    //veaXml( cTexto, 'como se ve xml' )

    cVal = substr( cTexto, nAt1 + len( cTag ) , nAt2 - nAt1 - len( cTag ) )

return cVal


function sacavalvariostag( cTag, cUnTag, cTexto )


    local cTg       := cTag
    local cuTg      := cUnTag
    local aTokens
    local aLineas   := {}
    local i

    aTokens = hb_atokens( cTexto, cuTg )
    for i = 1 to len( aTokens )
        if at( cTg, aTokens[i] ) > 0
            aTokens[i] = substr( aTokens[i], at( cTg, aTokens[i] ) + len( cTg ) )
            aadd( aLineas, aTokens[i] )
        end
    next

return aLineas
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Alternativa a hbxml
Posted: Tue Apr 11, 2023 06:03 PM
Gracias Wilson, de este modo funciona perfecto.

Pero me gustaría saber porque dicen que hbxml funciona y yo utilizando sus métodos no puedo obtener un resultado favorable, no dudo que sea por mi torpeza.

de hecho compilo el ejemplo xmlreader y no me funciona tampoco.

Pero con esto, soluciono mi problema puntual.

Gracias!!!!!!!
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: Alternativa a hbxml
Posted: Tue Apr 11, 2023 06:33 PM

yo perdi mucho tiempo tratando de lo mismo al parecer mucho depende de la complejidad del xml pero para facturación electrónica y todo lo que he hecho con esas dos funciones es mas que suficiente

saludos

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Re: Alternativa a hbxml
Posted: Wed Apr 12, 2023 11:47 AM
Gracias :D , a mi me ha solucionado el problema!!!
Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"

Continue the discussion