Alternativa a hbxml

Alternativa a hbxml

Postby jose_murugosa » Mon Apr 10, 2023 1: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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1178
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Alternativa a hbxml

Postby Antonio Linares » Mon Apr 10, 2023 6: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
User avatar
Antonio Linares
Site Admin
 
Posts: 42074
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Alternativa a hbxml

Postby jose_murugosa » Tue Apr 11, 2023 4: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#ptetxZVAo ... ncalZt-jag
User avatar
jose_murugosa
 
Posts: 1178
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Alternativa a hbxml

Postby wilsongamboa » Tue Apr 11, 2023 4:25 pm

buenos dias porque no asi

Code: Select all  Expand view
#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 '&lt;' $ ctexto
        cTag   = '&lt;'  + substr( cTag, 2   )
        cUnTag = '&lt;/' + 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
User avatar
wilsongamboa
 
Posts: 593
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Alternativa a hbxml

Postby jose_murugosa » Tue Apr 11, 2023 6: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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1178
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Re: Alternativa a hbxml

Postby wilsongamboa » Tue Apr 11, 2023 6: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
User avatar
wilsongamboa
 
Posts: 593
Joined: Wed Oct 19, 2005 6:41 pm
Location: Quito - Ecuador

Re: Alternativa a hbxml

Postby jose_murugosa » 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 y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1178
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 68 guests