Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Validité simple syntaxique d'un fichier XML

1 réponse
Avatar
apolojnet
Bonjour,

J'ai trouv=E9 cet exemple pour v=E9rifier la validit=E9 syntaxique
(caract=E8re, balise) sans le DTD, les sch=E9mas, etc..
=E0 : http://www.info.univ-angers.fr/~gh/tuteurs/tutxmloutils.htm


use XML::Parser;

$nf =3D "dmf.xml" ;

my $parser=3D new XML::Parser( Style =3D> 'Stream');
eval {$parser->parsefile( $nf )};
if ($@) { die "\n Document mal form=E9 : \n\t\t $@\n" ; } ;

# si on arrive ici, c'est que tout va bien


Ca fait ce que j'attends en termes de v=E9rification mais il me sort le
document XML =E0 chaque fois.
(bien sp=E9cifi=E9 par la doc -> " Stream : This style also uses the Pkg
package. If none of the subs that this style looks for is there, then
the effect of parsing with this style is to print a canonical copy of
the document without comments or declarations.)

Comment =E9viter cette sortie ?

J'ai essay=E9 les autres styles de parsing (Debug, Object, Tree, Subs)
sans r=E9sultat.

Mer=E7i d'avance

1 réponse

Avatar
Paul Gaborit
À (at) Thu, 12 Mar 2009 07:33:52 -0700 (PDT),
écrivait (wrote):
Bonjour,

J'ai trouvé cet exemple pour vérifier la validité syntaxique
(caractère, balise) sans le DTD, les schémas, etc..
à : http://www.info.univ-angers.fr/~gh/tuteurs/tutxmloutils.htm


use XML::Parser;

$nf = "dmf.xml" ;

my $parser= new XML::Parser( Style => 'Stream');
eval {$parser->parsefile( $nf )};
if ($@) { die "n Document mal formé : ntt $@n" ; } ;

# si on arrive ici, c'est que tout va bien


Ca fait ce que j'attends en termes de vérification mais il me sort le
document XML à chaque fois.
(bien spécifié par la doc -> " Stream : This style also uses the Pkg
package. If none of the subs that this style looks for is there, then
the effect of parsing with this style is to print a canonical copy of
the document without comments or declarations.)

Comment éviter cette sortie ?

J'ai essayé les autres styles de parsing (Debug, Object, Tree, Subs)
sans résultat.



Je ne comprends pas vraiment... Si vous ne voulez pas utiliser de
'Style', il suffit de ne pas fournir cette option : créez votre
XML::Parser sans paramètre tout simplement.

Si vous tenez absolument à utiliser le style 'Stream', lisez la
documentation de ce style (perldoc XML::Parser::Style::Stream) et
définissez vos propres traitements dans un package que vous créez pour
l'occasion.

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/&gt;
Perl en français - <http://perl.mines-albi.fr/&gt;