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 :

[SimpleXML] Utilisation pas si simple [Débutant(e)]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut [SimpleXML] Utilisation pas si simple
    Bonjour,

    Je parse un fichier XML avec la fonction simpleXML de php5.

    J'ai un fichier php (c'est quasiment exactement l'exemple de la doc pour le moment ...) qui contient mon fichier xml avec des infos pour le parseur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $xmlstr = <<<XML
    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <root><categorie nom="Categorie de test" type="2"><entete>bonjour</entete><texte1>contenu d ela colone 1</texte1><texte2>contenu d ela colone 2</texte2></categorie><categorie nom="gtytuytuytuytytuuy" type="2"><entete>yuyt</entete><texte1>tyty</texte1><texte2>utyutyu</texte2></categorie><categorie nom="dfgdfdf" type="2"><entete>gfg</entete><texte1>df</texte1><texte2>df</texte2></categorie></root>
    XML;
    ?>
    et un autre fichier qui appelle ce dernier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    include FICHIER_XML;
     
    $xml = new SimpleXMLElement($xmlstr);
    J'ai alors deux questions :
    quelle action j'opère lorsque j'utilise cet opérateur : "<<<" (s'il s'agit encore dans ce cas d'un opérateur) et comment modifier ce code pour que je puisse appeller un fichier XML standard, sans déclaration de variables préalable, c'est à dire en incluant ça dans la deuxieme page.

    J'ai tenté bien des manipulatuions qui se sont révélées infructueuses, mais sûrement à cause ce cette synthaxe tres sensible à la casse que je comprend qu'a moitié.

    Merci d'avance de vos réponses.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par keaton2000
    quelle action j'opère lorsque j'utilise cet opérateur : "<<<" (s'il s'agit encore dans ce cas d'un opérateur)
    C'est la syntaxe que l'on appelle HEREDOC pour "déclarer/affecter" une chaîne de caractères.

    Citation Envoyé par keaton2000
    comment modifier ce code pour que je puisse appeller un fichier XML standard, sans déclaration de variables préalable, c'est à dire en incluant ça dans la deuxieme page
    Vous pouvez aussi le faire via le constructeur mais il faut préciser son troisième paramètre à TRUE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sxml = new SimpleXMLElement('monfichier.xml', 0, TRUE);
    Ou utiliser plus simplement la fonction simplexml_load_file :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sxml = simplexml_load_file('monfichier.xml');

  3. #3
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Super, merci beaucoup

  4. #4
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    on peut résumer l'utilisation de la syntaxe : ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $myVar = <<< TOTO
    texte sans interet
    texte sans interet
      texte sans interet
        texte sans interet
          texte sans interet
        texte sans interet
      texte sans interet
    texte sans interet
    texte sans interet
    TOTO;
    ... a la déclaraiton d'une chaine de caracteres multiligne ?

    Est-ce équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $myVar = "texte sans interet\ntexte sans interet\ntexte sans interet\n&nbsp;&nbsp;texte sans interet\n&nbsp;&nbsp;&nbsp;&nbsp;texte sans interet\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Texte sans interet\n&nbsp;&nbsp;&nbsp;&nbsp;Texte sans interet\n&nbsp;&nbsp;Texte sans interet\ntexte sans interet\nTexte sans interet";

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Oui (aux espaces prêt et suivant les caractères utilisés par votre système pour marquer les nouvelles lignes). Il existe, comme souvent, plusieurs façons d'écrire une seule et même chose ...

  6. #6
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    Puisque tu réponds très vite, je me permet de te poser une autre question du même ordre, au sujet de l'utilisaiton de la classe simpleXML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $xmlstr = <<<XML
    <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
    <root><categorie nom="Categorie de test" type="2"><entete>bonjour</entete><texte1>contenu d ela colone 1</texte1><texte2>contenu d ela colone 2</texte2></categorie><categorie nom="gtytuytuytuytytuuy" type="2"><entete>yuyt</entete><texte1>tyty</texte1><texte2>utyutyu</texte2></categorie><categorie nom="dfgdfdf" type="2"><entete>gfg</entete><texte1>df</texte1><texte2>df</texte2></categorie></root>
    XML;
    ?>
    Dans cet exemple déjà cité plus haut, tu peux remarquer que le contenu du XML généré est sur une seule ligne. Sais-tu comment l'ordonner automatiquement en passant par cette classe ?

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    C'est à dire ? L'extension SimpleXML, pour autant que je sache, ne dispose d'aucune option de formatage (tout est compacté) contrairement à l'extension DOM, qui permet de le faire (ou non, par défaut).

  8. #8
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    oui j'ai vu la manipulation avec les objets DOM mais je trouve fastidieux de passer d'un objet à l'autre uniquement pour un formatage.

    J'avais éspéré que simpleXML paliait à cette carrence via une fonciton que je ne connaissais pas .

    D'ailleurs dans la doc hereDoc de php, il y a une ligne qui me fascine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Ceci est une valeur de variable variable : {${$name}}";
    Qu'est ce que c'est une variable variable ?

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par keaton2000
    Qu'est ce que c'est une variable variable ?
    Une variable dynamique (application : Comment appeler une variable dont le nom est stocké dans une autre variable ?).

  10. #10
    Membre éclairé
    Avatar de keaton7
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 743
    Points : 689
    Points
    689
    Par défaut
    merci

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

Discussions similaires

  1. Requête simple n'utilisant pas les index correctement
    Par Sindel dans le forum Requêtes
    Réponses: 9
    Dernier message: 14/07/2010, 13h22
  2. requete sur 2 table (pas si simple)
    Par Sebou San dans le forum Requêtes
    Réponses: 7
    Dernier message: 29/11/2005, 14h08
  3. [SimpleXML] Utilisation chez OVH
    Par vodnok dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/11/2005, 09h52
  4. localtime pas si simple ...
    Par ustilago dans le forum Langage
    Réponses: 4
    Dernier message: 18/11/2005, 13h52
  5. Pipes => pas plus simple ?
    Par Jorus dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 17h53

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