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 :

[XML:Twig et ODF::lpOD] Conversion XML en ODT


Sujet :

Modules Perl

  1. #21
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je vais légèrement complexifié mon XML, si j'ai un souci, je le posterai ici.

  2. #22
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon, en rajoutant une profondeur dans mon XML, ça ne fonctionne plus :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <synopsis>
    		<paragraph>
    			Ce tutoriel a pour but de vous <u>expliquer</u> en quelques lignes comment <i><b>concevoir</b></i> un plugin <b>Nagios</b> respectant les 
    			normes <b>Nagios</b> avec <b>Perl</b>.<br/><font color="#800040">cvcv</font>
    		</paragraph>
    </synopsis>

    J'obtiens ce message d'erreur : cannot paste an element that belongs to a tree at D:\Ooo\odf\jmg.pl line 36

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contexte->append_element($twig_paragraph);

  3. #23
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon je sèche !! Sachant que j'aurais plus d'imbrications

  4. #24
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je suppose que tu as visualisé ce que contenait $twig_paragraph avant l'appel à append_element ?

  5. #25
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Voici le procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sub xml_paragraph {
      my ( $twig, $twig_paragraph ) = @_;
      print $twig_paragraph->text;
      $twig_paragraph->set_tag('text:p');
      bless $twig_paragraph, odf_paragraph;
     
      $contexte->append_element($twig_paragraph);
     
      return;
    }
    Le print affiche bien
    Ce tutoriel a pour but de vous expliquer en quelques lignes comment concevoir un plugin Nagios respectant les
    normes Nagios avec Perl.cvcv
    Par contre après le bless bless $twig_paragraph, odf_paragraph;, je ne sais pas vraiment comment afficher le contenu .

  6. #26
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Voici un autre exemple :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <synopsis>
    		<paragraph>
    			Ce tutoriel a pour but de vous <u>expliquer</u> en quelques lignes comment <i><b>concevoir</b></i> un plugin <b>Nagios</b> respectant les 
    			normes <b>Nagios</b> avec <b>Perl</b>.<br/><font color="#800040">cvcv</font>
    		</paragraph>
    </synopsis>

    Procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sub xml_paragraph {
      my ( $twig, $twig_paragraph ) = @_;
     
      print "AVANT : ",$twig_paragraph->text;
     
      $twig_paragraph->set_tag('text:p');
      bless $twig_paragraph, odf_paragraph;
     
      print "APRES : ",$twig_paragraph->text;
     
      $contexte->append_element($twig_paragraph);
     
      return;
    }
    AVANT :
    Ce tutoriel a pour but de vous expliquer en quelques lignes comment concevoir un plugin Nagios respectant les
    normes Nagios avec Perl.cvcvAPRES :
    Ce tutoriel a pour but de vous expliquer en quelques lignes comment concevoir un plugin Nagios respectant les
    cannot paste an element that belongs to a tree at D:\Ooo\odf\jmg.pl line 42
    at D:\Ooo\odf\jmg.pl line 26
    at D:\Ooo\odf\jmg.pl line 26
    normes Nagios avec Perl.cvcv

  7. #27
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Remarque : tu devrais utiliser warn au lieu de print, ce qui évite le mélanger entre les messages de debug et les messages de warning de perl.

    Le problème ne se situe peut-être pas dans $twig_paragraph mais dans $contexte ?

  8. #28
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    sub xml_paragraph {
      my ( $twig, $twig_paragraph ) = @_;
     
      warn  "AVANT : ",$twig_paragraph->text,"\n";
     
      $twig_paragraph->set_tag('text:p');
      bless $twig_paragraph, odf_paragraph;
     
      warn  "APRES TWIG : ",$twig_paragraph->text,"\n";
      warn  "APRES : get_paragraph : ", $contexte->get_paragraph(position => -1)->get_text,"\n";
     
      $contexte->append_element($twig_paragraph);
     
      return;
    }
    AVANT :
    Ce tutoriel a pour but de vous expliquer en quelques lignes comment concevoir un plugin Nagios respectant les normes Nagios avec Perl.cvcv
    APRES TWIG :
    Ce tutoriel a pour but de vous expliquer en quelques lignes comment concevoir un plugin Nagios respectant les normes Nagios avec Perl.cvcv
    APRES : get_paragraph :
    cannot paste an element that belongs to a tree at D:\Ooo\odf\jmg.pl line 43
    at D:\Ooo\odf\jmg.pl line 26
    at D:\Ooo\odf\jmg.pl line 26
    Ligne 43 = apprend

  9. #29
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je comprends pas trop pourquoi avec un niveau de plus dans le XML, ça lui pose souci. Là c'est comme s'il ne reconnaissait pas le paragraphe.

  10. #30
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Ton get_paragraph ne retourne rien... c'est qu'il est vide ?

    Autre idée : plutôt que de re-bénir (bless again) $twig_paragraph, ne vaudrait-il pas mieux créer un nouvel objet odf_paragraph avec $twig_paragraph->text() ?

  11. #31
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon pour get_paragraph vide, en fait c'est normal vu que le paragraphe n'a pas été rattaché avec append. Il donne le même résultat sur le XML à 1 niveau de profondeur.

  12. #32
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Autre idée : plutôt que de re-bénir (bless again) $twig_paragraph, ne vaudrait-il pas mieux créer un nouvel objet odf_paragraph avec $twig_paragraph->text() ?
    Bah si je fais ça (ce que j'ai fait au tout début), on revient à mon problème initial pour pouvoir identifier et modifier le styles des données entre balise <b> .

    jmg avait donné cette solution avec bless qui resolve le souci, mais ça ne fonctionne pas dès qu'il y a plusieurs niveau dans le XML, ce qui est le cas de tous mes fichiers XML (sinon ça n'a pas de sens )

  13. #33
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    ou bien, il faudrait trouver un moyen avec XML::Twig de pouvoir isoler certaines positions. Par exemple :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <paragraph>bonjour <b>philou</b> et jmg</paragraph>
    Il faudrait que je sois capable de trouver que philou est en position 9 dans le texte bonjour philou et jmg afin d'utiliser la méthode set_span d'ODF

  14. #34
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Et si tu créais une nouvelle instance d'XML::Twig avec juste le contenu de <paragraph> comme contenu à parser ? (je sais, c'est lourd, mais bon...).

  15. #35
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    C'est une idée, mais comme le XML peut avoir 1000 lignes et beaucoup d'imbrications. Mais bon, c'est une idée que je vais creuser, elle peut être pas mal .

  16. #36
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Ca te permettra peut-être d'identifier ce qui ne convient pas.
    Autre idée : dans ton $twig_paragraph, il y a sans doute une référence au tag parent. Essaye de la supprimer avant de re-bénir en odf_paragraph, à moins que XML::Twig sache détacher un sous-arbre de son arbre principal, ce qui serait encore mieux.

  17. #37
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je vais creuser XML::Twig !!

  18. #38
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Je m'éclipse jusqu'à lundi matin. Bon week-end.

  19. #39
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Bon, je n'ai pas tout testé mais tu as vu juste philou !!!
    J'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sub xml_paragraph {
      my ( $twig, $twig_paragraph ) = @_;
     
      $twig_paragraph->cut;
      $twig_paragraph->set_tag('text:p');
      bless $twig_paragraph, odf_paragraph;
      $contexte->append_element($twig_paragraph);
     
      return;
    }
    en utilisant cut :
    cut

    Cut the element from the tree. The element still exists, it can be copied or pasted somewhere else, it is just not attached to the tree anymore.

    Note that the "old" links to the parent, previous and next siblings can still be accessed using the former_* methods
    ça à l'air de fonctionner. Je poursuis mes tests.

  20. #40
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Je m'éclipse jusqu'à lundi matin. Bon week-end.
    Ok, Bon weekend.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/06/2012, 12h27
  2. [XML::Twig] Commentaires dans le fichier XML réécrit
    Par knarf87 dans le forum Modules
    Réponses: 2
    Dernier message: 07/05/2008, 10h24
  3. [XSLT] Conversion xml vers txt ou mdb etc
    Par narodar dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/06/2006, 15h31
  4. [FOP] Problème de conversion xml/xsl vers pdf
    Par Shadow aok dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/03/2006, 11h41
  5. [XML][XSL] Un utilitaire de conversion (visuel) ?
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/01/2006, 16h25

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