Bonjour,

jusque l� j'ai fait quelques parsers XML `� la main', mais j'aimerais
utiliser les modules XML de Perl.  But de l'op�ration: importer et
exporter des donn�es de GNUcash dans une base de donn�es PostgreSQL.

GNUcash sort ses donn�es en XML.

J'ai d�j� �crit quelque chose comme:

   #! /usr/bin/perl -w

   use strict;
   use XML::Parser;
   use URI::Escape;

   my $p = new XML::Parser(Style => 'Tree');
   if (my $tree = $p->parsefile($file_name)) {
      $result = 0; # SUCCESS
      dump_array($tree, "");
   }
   else {
      $error_reason = 'parse failed';
   }

On obtient alors quelque chose comme:

ARRAY
   gnc-v2
   ARRAY
      HASH
      0
      %0A
[ ... ]
      ARRAY
         HASH
            version -> 2.0.0
         0
         %0A  
         act:name
         ARRAY
            HASH
            0
            Assets
[ ... ]
      gnc:transaction
      ARRAY
         HASH
            version -> 2.0.0
[ ... ]
         trn:date-posted
         ARRAY
[ ... ]
         trn:description
         ARRAY
            HASH
            0
            Paiement comptant 3450

[ ... ]
         trn:splits
         ARRAY
[ ... ]
               split:value
               ARRAY
                  HASH
                  0
                  -500/100
[ ... ]
               split:account
               ARRAY
[ ... ]
            trn:split
            ARRAY
[ ... ]

Donc assez pour extraire l'information suivant ma base de donn�es. Je peux
d�sormais aller bricoler dans ce array d'array de hash. Mais y aurait-il
une m�thode meilleure, plus ind�pendante du `document', qui permettrait
d'extraire plus imm�diatement les donn�es ?

Y aurait-il une autre m�thode ?

merci de toute suggestion.

PS: programme sur demande.


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.

Répondre à