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

APIs XML Discussion :

Indentation avec l'API XSL de PHP 5


Sujet :

APIs XML

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut Indentation avec l'API XSL de PHP 5
    Bonjour, voici mon problème.

    J'utilise l'API XSL de PHP 5 pour créer un fichier XML à partir d'un XML de base.

    Le problème c'est que le fichier XML produit n'est pas indenté hormis lorsque je l'ouvre avec un navigateur. Dans ma feuille de style j'ai bien déclaré l'indent=yes
    .... mais çà veut rien savoir.

    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
    Merci de m'aider.

  2. #2
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2007
    Messages : 63
    Points : 44
    Points
    44
    Par défaut
    Bon finalement j'ai trouvé le problème .

    Il ne fallait pas formaté la sortie à partir de la feuille de style mais à partir de mon script PHP qui utilisé l'API XSL pour PHP 5.

    L'utilisation de la propriété formatOutput() à passer à true suffit à indenter le code après avoir utilisé la méthode transformToDoc

    $new_file = new DOMDocument();

    $new_file = $xslt->transformToDoc($XML);
    $new_file->formatOutput = true;

    $new_file->save('test.xml');
    Voila la solution pour ceux qui avaient le même problème que moi . ++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Salut , j'essaie d'indenter un XML que je genère dans flash puis que j'envoie à une page php pour l'écrire dans un fichier mais je voudrais l'indenter au passage...

    J'ai essayé d'adapter ton code mais je n'y arrive pas...

    Mon xml non indenté est chemin.xml

    Voici le code que j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $xslt = new XSLTProcessor();
     
    // Chargement du fichier XML
    $xml = new domDocument();
    $xml -> load('chemin.xml');
     
    // Transformation et affichage du résultat
    $new_file = new domDocument();
    $new_file = $xslt->transformToDoc($xml);
    $new_file->formatOutput = true;
     
    $new_file->save('test.xml');
    Mais le fichier test.xml ne se crée jamais, je suis bien sur un serveur php5 et d'autres tests me permettent de dire que XSLTProcessor est bien activé et fonctionne... (serveur local MAMP Pro...)

    Le truc c'est que je ne comprends rien a XSL, et a part l'indentation je ne veux rien changer à mon XML d'origine...

    Est-ce que qqun peut un peu mieux expliquer le démarche à suivre svp ?

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

Discussions similaires

  1. Extension PHP avec ZEND API
    Par ayeb hichem dans le forum Zend Framework
    Réponses: 3
    Dernier message: 01/02/2012, 16h09
  2. Réponses: 2
    Dernier message: 19/07/2011, 14h57
  3. Réponses: 0
    Dernier message: 13/04/2010, 00h44
  4. Générer un html propre et indenté avec php
    Par Dendrite dans le forum Langage
    Réponses: 5
    Dernier message: 10/07/2008, 15h45

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