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] lecture d'un document XML


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut [XML] lecture d'un document XML
    Bonjour,

    Je suis entrain de développer une fonction qui lira un document XML pour de l'internationalisation.
    C'est la première dois que je lis un XML en PHP, je lutte ^^

    voici la forme de mon XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <stringList>
    	<msg id="Vous êtes connecté.">
    		<lang code="de">Sie sind angemeldet.</lang>
    		<lang code="en">You are logged.</lang>
    		<lang code="nl">U bent ingelogd.</lang>
    	</msg>
    	<msg id="Vous êtes déconnecté.">
    		<lang code="de">Sie sind getrennt.</lang>
    		<lang code="en">You are disconnected.</lang>
    		<lang code="nl">U bent niet aangesloten.</lang>
    	</msg>
    </stringList>
    Les ID des noeuds msg ne sont pas pratiques, mais je ne pense pas avoir le choix...

    J'ai commencé un code en PHP :
    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
    <?php
     
    function read($word, $language)
    {
        $doc = new DOMDocument();  
        $doc->load('internationalization.xml');
     
        $nodes = $doc->getElementsByTagName("msg");
        foreach($nodes as $ua)
        {  
            $code = $ua->getElementsByTagName("lang");
        }
    }
     
    read('Vous êtes déconnecté.', 'en');
     
    ?>
    Cependant j'aurais gravement besoin de vos lumières svp

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    J'ai essayé un autre code :

    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
    <?php
     
    function read($word, $language)
    {
        $doc = new DOMDocument('1.0', 'utf-8');
        $doc->validateOnParse = true;
        $doc->load('internationalization.xml');
     
        $news_node = $doc->getElementById($word);
        var_dump($news_node);
    }
     
    read(1, 'en');
     
    ?>
    Ce code me retourne NULL;

    ATTENTION ! J'ai temporairement changé les ID des balises msg ! les ID sont désormais 1 et 2.

  3. #3
    Expert confirmé

    Avatar de FirePrawn
    Homme Profil pro
    Consultant technique
    Inscrit en
    Mars 2011
    Messages
    3 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique

    Informations forums :
    Inscription : Mars 2011
    Messages : 3 179
    Par défaut
    Bonjour,

    Je suis loin d'être un pro pour la lecture de XML, mais pourquoi mettre un paramètre $langue à ta fonction si tu ne l'utilises finalement pas ?
    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Je ne réponds pas aux questions techniques en MP.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Attention, XML, ce n'est pas HTML, il ne suffit pas de mettre un attribut id pour qu'il soit de type id
    DOMDocument::getElementById
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    FirePrawn :
    Je découvre à peine la lecture du XML en php, alors je fais ma fonction pas à pas. Bon, si on reprend mon xml tout en faut ... je passe en paramètre l'id, et je dois retourner la traduction (variable $language).

    Bovino :
    J'ai déja lu cette page du manuel PHP, je n'ai pas avancé pour autant :/

    J'attends vos suggestions svp.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Etant donnée la nature de ce que tu essayes de faire et de la façon de récupérer les infos, je te conseillerais plutôt l'utilisation de simplexml avec une requête XPath...
    Sinon, ton second code n'a aucune raison de fonctionner puisqu'à priori, tu n'as pas de balise avec attributs de type id, quant au premier, la fonction read() ne retourne rien... donc son utilité en l'état est assez limitée
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. [WD14] Problème de lecture d'un document Xml
    Par drogba72 dans le forum WinDev
    Réponses: 2
    Dernier message: 08/01/2012, 20h59
  2. [Débutant] Lecture dans un document XML
    Par CJiwan dans le forum C#
    Réponses: 4
    Dernier message: 15/09/2011, 20h27
  3. Lecture d'un document word ou pdf
    Par Terminator dans le forum WinDev
    Réponses: 2
    Dernier message: 22/02/2009, 20h17
  4. [SimpleXML] Lecture d'un document XML avec PHP 4
    Par FredericB dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/02/2008, 17h49
  5. [SimpleXML] Lecture d'un document XML
    Par shivka dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 31/10/2007, 20h12

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