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 :

[XML] Ajouter un namespace au fichier XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [XML] Ajouter un namespace au fichier XML
    Bonjour,

    j'aimerais avoir ce résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?xml version="1.0" encoding="utf-8"?>
    <message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    sachant que j'ai fait ce code là et ça roule pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $xml = new DOMDocument('1.0', 'UTF-8');
    $message = $xml->createElementNS('http://www.w3.org/2001/XMLSchema', 'message');
    //$message->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
    //$message->setAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'schemaLocation', 'http://www.w3.org/2000/xmlns');
    //$message = $xml->appendChild($message);
    Merci en avance

  2. #2
    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
    message n'est dans un namespace NULL; namespace déclaration de xsi semble correct et il suffit de faire exactement la même manière pour xsd.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $xml = new DOMDocument('1.0', 'UTF-8');
    $message = $xml->createElementNS(NULL, 'message');
    $message->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
    $message->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:xsd','http://www.w3.org/2001/XMLSchema');
    $xml->appendChild($message);

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    merci de vous réponse ,j'ai fait la même chose mais rien ne s'affiche juste la balise tout seul je sais pas pourquoi ?

    Merci en avance

  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
    Si vous le regardez via un browseur, c'est un trompe l'oeil. Faites faire comme ça, si vous voulez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo htmlentities($xml->saveXML());

  5. #5
    Invité
    Invité(e)
    Par défaut
    lorsque je fait ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo htmlentities($xml->saveXML());
    je reçois une erreur :Erreur d'analyse XML : mal formé
    Emplacement : http://localhost/sq.php?id=1
    Numéro de ligne 1, Colonne 1 :&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

    Merci de vous réponse

  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
    Je ne pense pas sauf vous montrez tout. Je n'ai rien à ajouter.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voilà mon code complet :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
     ini_set('display_errors', true);
     ini_set('display_startup_errors', true);
    error_reporting(E_ALL);
      if(isset($_GET['id']))
    {
        # Get the ID
        $id = $_GET['id'];
     
        # Make sure the ID is in fact a valid ID
        if(!is_numeric($id) || ($id <= 0)) {
            die("The ID is invalid!");
            }
     
    include_once 'connect.php';
     
    mysql_select_db($dbname, $conn);
     
     
     
     
    $sql = "SELECT DISTINCT .....'  ORDER BY ....."; 
    $qry = mysql_query($sql) or die(mysql_error());
     
    $xml = new DOMDocument('1.0', 'UTF-8');
    $message = $xml->createElementNS(NULL, 'message');
    $message->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
    $message->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:xsd','http://www.w3.org/2001/XMLSchema');
    $xml->appendChild($message);
     
     
    if (mysql_num_rows($qry))
    {
     
     
        $rooms= $xml->createElement('rooms');
    	$rooms = $message->appendChild($rooms);
     
    	while ($data = mysql_fetch_assoc($qry)) {
        if (!isset($room) || $data['room_uid'] != $room->getAttribute('code')) {
            $room = $xml->createElement('room');
            $room = $rooms->appendChild($room);
            $room->setAttribute("code",$data['room_uid']);
            $room->setAttribute("name", $data['room_name']);
            $room->setAttribute("maxOccupancy", $data['maxpeople']);
            $room->setAttribute("minOccupancy", $data['minpeople']);
            $rooms->appendChild($room);
        }
     
        $rate = $xml->createElement('rate');
        $rate = $room->appendChild($rate);
        $rate->setAttribute("code",$data['rates_uid']);
        $rate->setAttribute("name", $data['rate_title']);
        $rate->setAttribute("regime", $data['room_class_abbv']);
    }	  
     
       // $xml->appendChild($rooms);
       $xml->appendChild($message);
    }
     
    header('Content-type: text/xml');
    mysql_set_charset('utf8');
    //header('Content-type: text/plain');
    header('Charset: utf-8');
    echo htmlentities($xml->saveXML());
    //echo $xml->saveXML();
    }
     else
    {
        echo "Error! No ID was passed.";
    }
     
    ?>
    Merci de vous réponse

  8. #8
    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
    Déactivez cette ligne de header si vous voulez inspecter le xml sérialisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //header('Content-type: text/xml');

  9. #9
    Invité
    Invité(e)
    Par défaut
    merci j'ai désactiver et s’afficher tout mais j'ai besoin l'affichage sous format XML

    Merci de vous réponse

  10. #10
    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
    Si l'affichage complet vous a convaincu que le xml est construit comme il doive être, activez le header en question et enlevez la ligne avec htmlentities() qui était insérée là pour une raison precise. C'est tout.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    j'ai activer le header et je supprimer la ligne htmlentities() et je reçois la balise

    et les autres balise ,mais le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    s'affiche pas

    je sais pas pourquoi?

    Merci en avance

  12. #12
    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
    Si ces deux namespaces ne trouvent pas leur utilité, et ça n'est pas impossible, leur présence n'importe peu voir n'import absoluement rien. Quel problème vous trouvez à cet égard? Mais, je n'accepte pas la déclaration comme vous semblez à continuer à faire que le stream xml envoyé du serveur ne les contient pas. Je ne peux pas vous aider plus, c'est presque ma limite à moi de nombre de mes interventions d'une question - si ça ne résoudre une question quelconque, ça montre je ne suis pas à la haute de passer les messages.

  13. #13
    Invité
    Invité(e)
    Par défaut
    ok ,merci pour votre réponse, en fait je tester avec autre navigateur Chrome "browser",et s'affiche le namespace par contre FireFox s'affiche pas .

    Merci de vous réponse.

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

Discussions similaires

  1. [JDOM] Ajout d'élément à un fichier xml
    Par delphine7983 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 14/07/2008, 17h31
  2. Ajouter des namespace dans un fichier XML
    Par Septembre84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/05/2008, 12h20
  3. comment ajouter des élements À un fichier XML
    Par ryoussef19 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 09/07/2007, 09h14
  4. Réponses: 1
    Dernier message: 30/05/2007, 20h12
  5. [DOM] Ajouter des noeuds à un fichier XML
    Par Louis-Guillaume Morand dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 07/04/2007, 14h55

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