🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #9806

Re: shallow parsing : REX

#9806
From: Cyrille Giquello
Date: Mon, 05 Feb 2001 21:37
124 lines
4823 bytes
rappel du Sujet :  un parser XML light, c'est a dire sans installer de lib a compiler.
Doit construire et permettre l'acces au DOM d'un document XML.

Encore un avantage pour l'existance d'un tel module :
il est facile de gérer un cache de la représentation mémoire du DOM.
Et avec des z'outils tel IPC ou modPerl ou ... on peut partager les données entre
plusieurs threads (je pense a un serveur web).

Mais je pense en Perl, qui permet facilement de save/load une representation memoire d'une
structure de donnees.

Je continue le dev :
- deja un DOM sous forme de reference a des hashtables (Perl ;o) L'acces au element du DOM
s'effectue selon les clefs de ces hash.
- todo :  Ajout de qlqs accesseurs pour compléter la boite a outils.
- todo : Ensuite un p'tit stat() sur le fichier pour choisir de charger le cache ou bien
de reparser le doc.

PS : j'ais un p'tit soucis avec REX pour lire les attributs numerique d'un tag ,
exemple qui ne marche pas :
    <site id="toto" debug="123" couleur="bleu"> ...
exemple qui marche :
    <site id="toto" debug="oui" couleur="bleu"> ...

c'est PASs Bien, mais pour avancer j'ais modifie la RegEx $NameStrt.
en faite je n'arrive pas a manipuler les autres RegEx ;o{

    # perl code :
    # originale :
    $NameStrt = "[A-Za-z_:]|[^\\x00-\\x7F]";
    # modifiee
    $NameStrt = "[A-Za-z_:0-9]|[^\\x00-\\x7F]";
    #
    $NameChar = "[A-Za-z0-9_:.-]|[^\\x00-\\x7F]";
    $Name = "(?:$NameStrt)(?:$NameChar)*";
    #
    my $tag = '<site id="toto" debug="oui" couleur="bleu">' ;
    ( $element, @attribs) = $tag  =~ /$Name/go ;
    print "$element : " , join( ',', @attribs) , "\n";
    my $tag = '<site id="toto" debug="123" couleur="bleu">' ;
    ( $element, @attribs) = $tag  =~ /$Name/go ;
    print "$element : " , join( ',', @attribs) , "\n";



Cyrille

about: REX: XML Shallow Parsing with Regular Expressions
http://www.cs.sfu.ca/~cameron/REX.html


Gilles Lenfant wrote:

> Ne cherche pas à faire un parser perso avec un processeur de Regular
> Expression...
>
> 1/ Tu aboutiras à faire quasiment un parser SAX ou DOM (un parser SAX est
> souvent programmé à l'aide d'un processeur de Regular Expression et un
> parser DOM à l'aide d'un parser SAX).
> Un parser SAX suffit pour lire des XML simples comme un .ini.
>
> 2/ Le code sera plus difficilement maintenable.
>
> "Cyrille Giquello" <cyrille@ktaland.com> a écrit dans le message news:
> 3A7EAD2F.90237E86@ktaland.com...
> Hello la communauté,
>
> bon, je cherche à lire du XML sans installer un gros parser comme il est
> indiqué partout.
> Car l'utilisation devra être légère puisque l'objectif est de ne plus
> utiliser des
> fichiers du genre .INI à la windows.
>
> J'ais trouvé un article qui parle de Regular Expression pour lire du XML en
> Perl /
> Javascript / Flex ... :
>
>     REX: XML Shallow Parsing with Regular Expressions
>     http://www.cs.sfu.ca/~cameron/REX.html
>
> Et bien je n'arrive pas à faire fonctionner ce bazard.
>
> Est-ce que quelqu'un a une piste ?
> Pour parser du XML sans compiler un parser (xeres, expat ...).
> Afin de manipuler des p'tits fichier de config !!
>
> Help !
> Je commence à attraper mal à la tete ;o)
>
> Cyrille.
>
> ------------------
>
> Encryption | Duncan Campbell | DST | Blacklisted 411 | ECHELON | 2600 | PGP
> | Corsica |
> NSA



--
 Cyrille / Ktaland

-----------------------------------------
-      http://www.ktaland.com/
- Pour votre MAC: http://TOUSOFT.COM/
-----------------------------------------

Encryption | Duncan Campbell | DST | Blacklisted 411 | ECHELON | 2600 | PGP | Corsica |
NSA
Technical Details
Message-ID: <3A7F1D28.A100A9D2@ktaland.com>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!news.tele.dk!213.56.195.71!fr.usenet-edu.net!usenet-edu.net!oleane.net!oleane!nnrp.oleane.net!not-for-mail
References: <3A7EAD2F.90237E86@ktaland.com> <95mfmm$imf$1@reader1.imaginet.fr>

Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII
X-Google-Thread: 114f60,2a2c137789640073
X-Google-Attributes: gid114f60,public
X-Google-ArrivalTime: 2001-02-05 13:40:03 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!news.tele.dk!213.56.195.71!fr.usenet-edu.net!usenet-edu.net!oleane.net!oleane!nnrp.oleane.net!not-for-mail
From: Cyrille Giquello <cyrille@ktaland.com>
Newsgroups: fr.comp.text.xml
Subject: Re: shallow parsing : REX
Date: Mon, 05 Feb 2001 22:37:44 +0100
Organization: Ktaland
Lines: 126
Message-ID: <3A7F1D28.A100A9D2@ktaland.com>
References: <3A7EAD2F.90237E86@ktaland.com> <95mfmm$imf$1@reader1.imaginet.fr>
NNTP-Posting-Host: c2fa9658.adsl.oleane.fr
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-Trace: s1.read.news.oleane.net 981409015 8492 194.250.150.88 (5 Feb 2001 21:36:55 GMT)
X-Complaints-To: abuse@oleane.net
NNTP-Posting-Date: Mon, 5 Feb 2001 21:36:55 +0000 (UTC)
X-Mailer: Mozilla 4.04 [en] (WinNT; I)