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

Bibliothèques et frameworks PHP Discussion :

[DOM] Changer le header d'un fichier XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut [DOM] Changer le header d'un fichier XML
    Bonjour,
    J'ai créé un fichier XML avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    header('Content-Type: text/xml');
    header('Content-Type: application/xml');
     
    $doc = new DOMDocument('1.0', 'UTF-8');
     
    $doc->preserveWhiteSpace = false;
    $doc->formatOutput = true;
    J'ai obtient un fichier comme cela :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="UTF-8"?>
    <engregistrement>
      <date>2015-05-25 14:26</date>
    J'aimerais bien changer la première ligne pour obtenir comme cela :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml-stylesheet type='text/xsl' href='transactionresume.xslt'?>
    <engregistrement>
      <date>2015-05-25 14:26</date>
    Est-ce que vous avez une idée pour cela ?

    merci

  2. #2
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut
    Bonjour,
    J'ai réussi d'ajouter la ligne suivant :
    <?xml-stylesheet type='text/xsl' href='transactionresume.xslt'?>
    avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $faux_header = $doc->createProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="transactionresume.xslt"');
    $doc->appendChild($faux_header);
    voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    header('Content-Type: text/xml');
    header('Content-Type: application/xml');
     
    $doc = new ('1.0', 'UTF-8');
     
    $doc->preserveWhiteSpace = false;
    $doc->formatOutput = true;
     
     
    $faux_header = $doc->createProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="transactionresume.xslt"');
    $doc->appendChild($faux_header);
    et j'obtiens :
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type='text/xsl' href='transactionresume.xslt'?>
    <engregistrement>
    <date>2015-05-25 14:26</date>
    Par contre, il faudrait que je supprime la 1re ligne :
    Comment puis-je la supprimer ?

    Merci

  3. #3
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut
    Bonjour,

    Est-ce que vous avez une idée pour supprimer la 1re ligne ?

    Autrement dit, que je dois faire pour que cette ligne ne se créer pas lors de la création de mon fichier XML ?

    Merci

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    On peut le faire comme ça.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sxml=$doc->saveXML($faux_header);
    $sxml.="\n";
    $sxml.=$doc->saveXML($doc->documentElement);
    echo $sxml;

  5. #5
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut
    Merci Tsuji,

    Super.... Ça marche et il affiche bien ce que j'ai voulu :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml-stylesheet type="text/xsl" href="transactionresume.xslt"?>
    <engregistrement>
      <date>015-05-25 14:26</date>
    </engregistrement>


    Par contre, je n'arrive pas créer le fichier...
    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
    16
    17
    18
    19
    20
    21
    22
    23
    header('Content-Type: text/xml');
    header('Content-Type: application/xml');
    $doc = new DOMDocument('1.0', 'UTF-8');
    //formatage
    $doc->preserveWhiteSpace = false;
    $doc->formatOutput = true;
    $faux_header  = $doc->createProcessingInstruction('xml-stylesheet', 'type="text/xsl" href="transactionresume.xslt"');
    $doc->appendChild($faux_header);
    /* :::::::::::::::: Niveau ZERO ::::::::::::::::  */							
    $level_zero_commande = $doc->createElement("engregistrement");
    $doc->appendChild($level_zero_commande);
    /* :::::::::::::::: Child de Niveau ZERO :::::::: Niveau UN ::::::::  */
    $date = $level_zero_commande->appendChild($doc->createElement('date'));
    $date->appendChild($doc->createTextNode("015-05-25 14:26")); 
    $sxml=$doc->saveXML($faux_header);
    $sxml.="\n";
    $sxml.=$doc->saveXML($doc->documentElement);
    echo $sxml;
    //echo $doc->saveXML(); // old
    $nameFileXmData = 'toto.xml';
    //$doc->save($nameFileXmData); // Old
    //$sxml->save($nameFileXmData);        //Fatal error</b>:  Call to a member function save() on a non-object in 
    $sxml = save($nameFileXmData);     //Fatal error</b>:  Call to undefined function save() in
    Est ce que vous avez une idée ?

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Comme c'est déjà sérialisé, $sxml, il ne faut pas appliquer la méthode save(), qui vient de nulle part d'ailleurs là, de $sxml (?) que une chaîne de caractères ne la reconnaisse évidemment pas.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //$doc->save($nameFileXmData);
    //$sxml = save($nameFileXmData);
    file_put_contents($nameFileXmData, $sxml);
    A part ça, c'est une concerne récurrante qu'on doit toujours faire attention à l'encodage de caractères - juste une parenthèse pour le moment.

  7. #7
    Membre habitué
    Homme Profil pro
    Aprenti
    Inscrit en
    Mai 2015
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Aprenti

    Informations forums :
    Inscription : Mai 2015
    Messages : 199
    Points : 140
    Points
    140
    Par défaut
    Excellent Tsuji
    Citation Envoyé par tsuji Voir le message
    Comme c'est déjà sérialisé, $sxml, il ne faut pas appliquer la méthode save(), qui vient de nulle part d'ailleurs là, de $sxml (?) que une chaîne de caractères ne la reconnaisse évidemment pas.
    .
    Merci et bonne journée

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

Discussions similaires

  1. [DOM] problème lors du parcours du fichier xml
    Par krfa1 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/05/2007, 07h24
  2. [DOM] (org.w3c.dom) copier un noeud d'un fichier XML dans un autre fichier XML
    Par snoop dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 13/02/2007, 17h22
  3. [DOM] Modifier un noeud dans un fichier XML
    Par erivoil dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/01/2007, 12h11
  4. [DOM] Récupérer l'encodage d'un fichier xml en php5
    Par Rakken dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/11/2006, 14h31
  5. [DOM] importer un noeud d'un fichier xml et le coller dans un autre fichier
    Par iznogoud36 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/06/2006, 12h55

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