Purebasic et XML ?
Purebasic et XML ?
Noël est déjà passé, ceci dit, sera-t-il possible un jour de voir Purebasic gérer nativement la technologie - importante de nos jours - XML ?
C'est déjà possible depuis longtemps en ce qui me concerne grâce à la DLL 'xmlparser.dll' et le wrapper que j'ai écris.
Mais pour x ou y raisons ce serait excellent de le voir un jour intégré.
Si tu es intéressé Fred, j'ai remis l'archive en ligne. elle contient :
- 1 version en fichier .pbi pour une inclusion ou...
- 1 version en fichier .pbl pour une importation avec DLL Importer
- 1 exemple - version 'include'
- 1 exemple - version 'imported'
- 1 petit fichier xml de test
- la DLL libre d'utilisation 'xmlparser.dll'
http://www.penguinbyte.com/apps/pbwebst ... rapper.zip
Purebasicement votre !
C'est déjà possible depuis longtemps en ce qui me concerne grâce à la DLL 'xmlparser.dll' et le wrapper que j'ai écris.
Mais pour x ou y raisons ce serait excellent de le voir un jour intégré.
Si tu es intéressé Fred, j'ai remis l'archive en ligne. elle contient :
- 1 version en fichier .pbi pour une inclusion ou...
- 1 version en fichier .pbl pour une importation avec DLL Importer
- 1 exemple - version 'include'
- 1 exemple - version 'imported'
- 1 petit fichier xml de test
- la DLL libre d'utilisation 'xmlparser.dll'
http://www.penguinbyte.com/apps/pbwebst ... rapper.zip
Purebasicement votre !
Dernière modification par Flype le dim. 27/févr./2005 23:12, modifié 2 fois.
bon du coup, je fais une userlib. j'espere qu'elle vous plaira parce que
j'ai essayé de faire quelquechose de très simple à utiliser.
c'est en beta test...
alors n'hesitez pas à tester tout çà et à me remonter les bugs.
voici une copie de la doc qui résume l'ensemble des fonctions :
Liens de PureXML Version 1.0 Beta :
http://www.penguinbyte.com/apps/pbwebst ... ureXML.zip
j'ai essayé de faire quelquechose de très simple à utiliser.
c'est en beta test...
alors n'hesitez pas à tester tout çà et à me remonter les bugs.
voici une copie de la doc qui résume l'ensemble des fonctions :
Code : Tout sélectionner
----------------------------------------------------------------------
Name PureXML
Version 1.0 Beta
Date Feb. 2005
Descr. A Purebasic XML Userlibrary based on the 'xmlparser.dll'
Written by Philippe Carpentier - flype@altern.org
Compil. Compiled with Purebasic 3.93 Beta 3
UserLibrary made with TailBite 1.2 Beta 2
Tested on Windows 98, 2000, XP
Requir. You must place the xmlparser.dll in same directory
----------------------------------------------------------------------
Main functions :
Result.b = PureXML_ParseFile(xmlFile.s)
Result.b = PureXML_ParseString(xmlString.s)
Result.s = PureXML_LastError()
The goal of this UserLib is two read XML data from
a file or from a string. Here are the functions :-)
----------------------------------------------------------------------
Callback functions ( no return value ) :
PureXML_SetOpenHandler(*funcPtr.l)
PureXML_SetCloseHandler(*funcPtr.l)
PureXML_SetDataHandler(*funcPtr.l)
PureXML_SetCommentHandler(*funcPtr.l)
PureXML_SetInvalidHandler(*funcPtr.l)
You should set those functions to catch XML events.
Then you can easily process what you need for each tag name.
;-
Procedure MyXML_o()
debug PureXML_Name()
EndProcedure
PureXML_SetOpenHandler(@MyXML_o())
;-
----------------------------------------------------------------------
Properties functions :
Result.s = PureXML_Name()
Result.s = PureXML_Data()
Result.s = PureXML_Attr(attrName.s)
This help you process data from XML tags.
An example :
<software id='0' name='purebasic'>
A great 'not so basic' language
</software>
PureXML_Name() >>> "software"
PureXML_Data() >>> " A great 'not so basic' language"
PureXML_Attr("id") >>> "0"
PureXML_Attr("name") >>> "purebasic"
----------------------------------------------------------------------
Have fun
flype - 2005
http://www.penguinbyte.com/apps/pbwebst ... ureXML.zip
Dernière modification par Flype le mer. 02/mars/2005 22:17, modifié 1 fois.
Je comprand le principe (à peux près), mais une fois que vien la pratique de la lib... ça... plante
ça vien sûrement de moi.
Faut dire que je m'attaque pas à un petit truc, mais aux fichiers de traduction de Trillian.
En tout cas merci pour cette lib dont j'attand la version française avec impatience, car elle m'a fait me plonger un peu dans le xml.

Faut dire que je m'attaque pas à un petit truc, mais aux fichiers de traduction de Trillian.
En tout cas merci pour cette lib dont j'attand la version française avec impatience, car elle m'a fait me plonger un peu dans le xml.

attention la dll xmlparser qui evidemment n'est pas de moi ( trop dur à faire un parser exhaustif ) est très rigoureuse quant à la syntaxe xml.
certaines libertés prisent dans certains documents xml que j'ai essayé et piochés sur divers sites ne sont pas ouvert et génère une erreur.
par contre avec mes propres fichiers xml ca fonctionne bien.
je sais deja que les balises <!CDATA ne sont pas reconnues, certaines balises d'entete XML aussi. et ensuite les balises du genre <item id=0 nom=toto>
ne sont pas reconnue car ce devrait etre <item id="0" nom="toto"> ( avec les guillemets )
peut etre existe t il une version plus recentes de xmlparser. je vais verifier. voir meme yeuté sur une autre lib ( celle de microsoft par ex. )
par ailleurs verifiez bien avec 'Debug PureXML_LastError()' juste apres PureXML_ParseFile( filename$ ) pour avoir une idée plus précise du problème.
certaines libertés prisent dans certains documents xml que j'ai essayé et piochés sur divers sites ne sont pas ouvert et génère une erreur.
par contre avec mes propres fichiers xml ca fonctionne bien.
je sais deja que les balises <!CDATA ne sont pas reconnues, certaines balises d'entete XML aussi. et ensuite les balises du genre <item id=0 nom=toto>
ne sont pas reconnue car ce devrait etre <item id="0" nom="toto"> ( avec les guillemets )
peut etre existe t il une version plus recentes de xmlparser. je vais verifier. voir meme yeuté sur une autre lib ( celle de microsoft par ex. )
par ailleurs verifiez bien avec 'Debug PureXML_LastError()' juste apres PureXML_ParseFile( filename$ ) pour avoir une idée plus précise du problème.