IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

option CDATA sur XML


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut option CDATA sur XML
    bonjour,
    j'ai un fichier xml en entrée contenant un CDATA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <object><![CDATA[
                    Objet de l'email 1
                   ]]></object>
    je le charge via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # créer un objet    ProtocolEncoding => 'UTF-8' et pas 'ISO-8859-1'
    my($xml)=new XML::Simple (ForceArray=>1,NoSort=>1,SuppressEmpty => undef,
            RootName=>'emails', XMLDecl => '<?xml version="1.0" encoding="UTF-8" ?>
    ');
     
    # lire le fichier XML
    my $data=$xml->XMLin($ficDocXML);
    et lorsque que je le réécris avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $xml->XMLout($data, OutputFile => $ficOutXML);
    il a perdu le formatage CDATA !!

    une idée?

    merci

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Comme l'indique son nom, XML::Simple est fait pour les documents XML simples (les fichiers de configuration par exemple). Et un document comportant des sections CDATA n'est pas suffisamment simple pour lui. Parmi les alternatives, tu as les modules de XML::LibXML ou de XML::Parser, avec diverses alternatives utilisant des interfaces SAX ou DOM, "Tree" ainsi qu'XPath. XML::Twig est également un excellent module pour traiter du XML, avec une approche originale et très "Perl".
    Si tu veux des conseils plus précis, donne nous plus de détails sur ce que tu veux faire avec ton XML (et quelle taille il peut atteindre).

    --
    Jedaï

  3. #3
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    merci a toi Jedai;

    le principe est le suivant:
    je reçois un fichier xml en entrée qui est une liste de mails
    suivant le "status" (s'il est a 0) je dois envoyer le mail
    si j'ai une erreur :
    - Mise à jour du statut pour chaque e-mail (balise <status>):
    0 => Non traité (statut initial, non traité par le programme)
    1 => Non envoyé (suite à au serveur smtp indisponible) avec erreur écrite dans la balise <message> (avec un CDATA).
    2 => Non envoyé (suite à une erreur renvoyé par le serveur smtp) avec erreur écrite dans la balise <message> (avec un CDATA).
    3 => Non envoyé (suite à une erreur applicative, par exemple absence d'une pièce jointe,
    d'un expéditeur ou d'un destinataire) avec erreur écrite dans la balise <message> (avec un CDATA).
    4 => Envoyé (Réponse OK du serveur smtp)

    il faut donc que je "ressorte" le fichier après avoir mis a jour la balise status et message si nécessaire.

    ci joint une partie du xml a traiter

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <?xml version="1.0" encoding="UTF-8"?>
    <emails>
    	<mail>
    		<nid>0000145823</nid>
    		<from>regis.xxx@xx.com</from>
    		<to>antoine.xx@xx.com</to>
    		<cc>serge.xx@xx.com</cc>
    		<object><![CDATA[Objet de l'email 1]]></object>
    		<body><![CDATA[Monsieur, Madame,
     
    		Veuillez trouver en pièce jointe votre document 1
     
    		cordialement,
    		Régis xx
    		]]></body>
    		<files>
    			<file>C:/SQL.pdf</file>
    			<file>C:/recipients.xml</file>
    		</files>
    		<message></message>
    		<status>4</status>
    	</mail>
    	<mail>
    		<nid>0000145824</nid>
    		<from>regis.xx@xx.com</from>
    		<to>antoine.xx@xx.com</to>
    		<cc>serge.xx@xx.com</cc>
    		<object><![CDATA[Objet de l'email 2]]></object>
    		<body><![CDATA[Monsieur, Madame,
     
    		Veuillez trouver en pièce jointe votre document 2
     
    		cordialement,
    		Régis xx
    		]]></body>
    		<files>
    			<file>C:/SQL.pdf</file>
    			<file>C:/recipients.xml</file>
    		</files>
    		<message></message>
    		<status>0</status>
    	</mail>
    </emails>

    Voilà!

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    D'accord, n'importe quel type de module XML pourrait donc convenir. Comme tu ne m'as pas indiqué la taille, je vais assumer le pire et supposer que le XML peut-être très gros. Dans ce cas tu peux utiliser XML::Parser ou XML::Twig (chaudement recommandé, tu trouveras un tutorial dans la page dont je t'ai mis le lien) qui sont bien adaptés à une lecture et modification "par bout" comme ici.

    --
    Jedaï

  5. #5
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Par défaut
    merci beaucoup Jedai

    PS: petit commentaire:
    vous avez "délesté" ma discussion de Langage a Module => Ok pas de pb; mais il serait bien que l'on recoive un petit mail pour nous avertir car ce matin je me demandais quel titre j'avais mis ou si j'avais bu....

  6. #6
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par serge0934
    PS: petit commentaire:
    vous avez "délesté" ma discussion de Langage a Module => Ok pas de pb; mais il serait bien que l'on recoive un petit mail pour nous avertir car ce matin je me demandais quel titre j'avais mis ou si j'avais bu....
    Je ne crois pas avoir fait ça... Par ailleurs si je l'avais fait tu aurais dû recevoir un MP en tant que créateur de la discussion concernée. Je n'ai eu aucun autre retour concernant un éventuel problème de cet ordre : tu es sûr de toi ?

    --
    Jedaï

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question moteur de recherche basé sur XML
    Par Royd938 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/05/2006, 12h00
  2. Nouveau sur XML cherche à comprendre un truck...
    Par shadowbob dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 11/02/2006, 16h10
  3. Réponses: 3
    Dernier message: 06/07/2004, 10h21
  4. Cours en Français sur XML-XSL et XPath
    Par Community Management dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 25/04/2002, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo