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

Langage PHP Discussion :

Rendu XML via php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Par défaut Rendu XML via php
    Bonjour,

    j'aimerais avoir un rendu XML sur une page php. (C'est une page php qui doit être équivalente à un fichier .xml)

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php header('Content-Type: text/xml; charset=utf-8');
    echo'<?xml version="1.0" encoding="iso-8859-1"?>';
    echo'<test>';
    echo'Ca ne marche pas';
    echo'</test>';
    ?>
    Et l'erreur que j'ai :

    This page contains the following errors:
    error on line 2 at column 6: XML declaration allowed only at the start of the document
    Below is a rendering of the page up to the first error.


    Connaissez vous la raison de ce probleme et la manière de le regler, sachant que ça marche parfaitement en local mais pas sur le serveur.

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    tu veux montrer un fragment de xml dans une page en html?
    utilise htmlspecialchar().

    Ton code produit un code xml, il me semble qu'il doit y avoir le fameux caractère invisible au début de ton fichier (avant le <php ), verifie l'encodage, le bom.

    je me demande si le retours à la ligne est obligatoire apres le prologue, personne ne le précise mais c'est l'usage. En tout cas ton code n'écho aucun retour à la ligne et pourtant il y a 2 lignes de documents... au lieu d'une.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Par défaut
    Bonjour,

    tout d'abord merci pour avoir pris le temps de me répondre.

    Enfait ce que je cherche à faire c'est juste à mettre sous format XML les résultats d'une base de données afin de permettre la relation entre une application iPhone et cette base de donnée. Donc il ne doit y avoir que du XML. En ce qui concerne l'espace, cela me parait vraiment bizarre car, j'ai même essayé de modifier directement le fichier ".php" via fileZilla (Afficher/Editer), et mettre une seule et unique ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php header('Content-Type: text/xml; charset=utf-8');echo'<?xml version="1.0" encoding="iso-8859-1"?>';echo'<test>';echo'Ca ne marche pas';echo'</test>';?>
    J'ai essayé en rajoutant un <br/> aprés le <?xml version="1.0" encoding="iso-8859-1"?>, même problème.

    Le plus étrange dans tout ça, c'est que j'ai généré des fichiers ".xml" qui fonctionnent trés bien, mais dés que je veux juste un rendu XML avec un ".php" il y a cette erreur.

    Donc bon je vais chercher du côté de l'encodage de netBeans, ca doit être la seule possibilité.

    EDIT: Aprés quelques recherche, j'étais déjà bien en UTF-8 sur netbeans (donc sans BOM).
    Est il possible que le problème vienne du serveur?

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si tu veux générer du XML, pourquoi ne pas utiliser SimpleXML ou DOM ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 8
    Par défaut
    Car je ne connaissais pas et comme il s'agit juste de mettre en forme les données pour que l'application iphone puisse les récupérer et les parser, je pensais qu'il valait faire ça de la façon la plus basique possible.

    De plus il faut que l'application iphone puisse récupérer ce qui est afficher comme si c'etait un fichier XML(même rendu), il lui faut donc les balises.

    Voici le test que j'ai fais avec SimpleXML :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php Header("content-type: text/xml");
    $xmlstr = <<<XML
    <?xml version='1.0' standalone='yes'?>
    <movies>
     <movie>
      <title>PHP: Behind the Parser</title>
      <characters>
       <character>
        <name>Ms. Coder</name>
        <actor>Onlivia Actora</actor>
       </character>
       <character>
        <name>Mr. Coder</name>
        <actor>El ActÓr</actor>
       </character>
      </characters>
      <plot>
       So, this language. It's like, a programming language. Or is it a
       scripting language? All is revealed in this thrilling horror spoof
       of a documentary.
      </plot>
      <great-lines>
       <line>PHP solves all my web problems</line>
      </great-lines>
      <rating type="thumbs">7</rating>
      <rating type="stars">5</rating>
     </movie>
    </movies>
    XML;
     
    $movies = new SimpleXMLElement($xmlstr);
     
    $movies->movie[0]->characters->character[0]->name = 'Miss Coder';
     
    echo $movies->asXML();
    ?>
    Même problème.

    Encore une fois, tout fonctionne en local.

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    les retours à la lignes dans le code php sont indifférents, ce qui compte c'est de ne pas avoir des echo intempestifs.
    je veux dire que si tu ouvrais ton fichiers php avec un éditeur hexa decimal tu verrai un caractère avant le <?php

    transfert ftp mode texte ou mauvais encodage de fichier.

Discussions similaires

  1. [DOM XML] Recherche dans xml via php ?
    Par Naoli dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 21/04/2007, 08h54
  2. Réponses: 4
    Dernier message: 29/03/2007, 17h06
  3. xml - création xml via php(mysql) - manque données
    Par Raiders dans le forum XQUERY/SGBD
    Réponses: 5
    Dernier message: 23/03/2006, 18h54
  4. Réponses: 16
    Dernier message: 22/03/2006, 11h11
  5. Exportation base MySql en XML via Php
    Par gehan dans le forum Outils
    Réponses: 8
    Dernier message: 19/01/2006, 19h42

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