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] plusieurs tag plusieurs attribut


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut [SimpleXML] plusieurs tag plusieurs attribut
    bonjour a tous,

    Alors voila mon petit souci qui vient surtout de ma méconnaissance de simple xml:

    XML de référence :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../######">
        <item id="1" type="a" name="nom">
            <set name="a" val="111" />
            <set name="b" val="111" />
            <set name="c" val="111" />
            <set name="d" val="111" />
            <set name="e" val="111" />
            <set name="f" val="111" />
            <set name="g" val="111" />
            <set name="h" val="111" />
            <set name="i" val="111" />
            <set name="j" val="111" />
            <set name="k" val="111" />
            <set name="l" val="111" />
            <set name="m" val="111" />
            <set name="n" val="111" />
            <set name="o" val="111" />
            <set name="p" val="111" />
            <set name="q" val="111" />
            <for>
                <set stat="a" val="000" />
                <set stat="b" val="000" />
                <set stat="c" val="000" />
                <add stat="d" val="000" />
                <set stat="e" val="000" />
                <enchant val="0" stat="a" />
                <enchant val="0" stat="b" />
            </for>
        </item>
    </list>
    Alors voila mon but et de recupéré:

    item = id, type, name

    et ensuite dans les set part exemple a,b,c,d avec leur valeur or c'est ici que je bute completement.

    Et dans le for a,b,c avec leur valeurs.

    Le tout dans un foreach.

    Merci d'avance

    Exemple mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach ($xml->item as $item) {
        echo
            $item['id'].
            $item['type'].
            $item['name'].
            $item->set['d'];

  2. #2
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    Salut
    je suis désoler mais je comprends pas ce que tu veux faire reexplique on est sur un forum tu peux prendre ton temps

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse.

    Globalement,

    J'ai une masse de fichier xml atypique "de mon point de vue" que je doit transformer en index et injecté dans une bdd et pour ça je doit récupérée:

    dans item => id, type, name
    et entre les balise item je doit récupéré certaine balise set en fonction de leur "name" et afficher leur "val"

    pour en sorti avoir un ligne par item de genre:

    item->id, item->type, item->name, valeur de set->a, valeur de set->d, valeur de set->y etc ...


    désolé si je ne suis pas très clair mais je ne vois pas comment l'imagé autrement.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    En grattant un peux sur internet j'ai réussi a faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($xml->xpath('//item/set[@name="a"]') as $category)
    	{
    	    echo $category['val'] . '<br />';
    	}
    Qui me revoie bien la bonne valeur, maintenant la question serai plus de comment je peux l'integré a ma boucle pour avoir la bonne valeur associer au bon "item" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	foreach ($xml->item as $item) {
    		echo 
    			$item['id'].
    			$item['type'].
    			$item['name'];
    	}

  5. #5
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    salut regarde ca
    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
     
    <?php 
    $xml = simplexml_load_file("tonFichier.xml");
    function mdr($xml){
        $setsAttr = [];
        $sets = $xml->item->set;
        $item = $xml->item;
        $itemAttr = [];
        for($itemLen = 0; $itemLen < count($item); $itemLen++){
            $itemAttr[$itemLen]["id"] = $item[$itemLen]["id"];
            $itemAttr[$itemLen]["type"] = $item[$itemLen]["type"];
            $itemAttr[$itemLen]["name"] = $item[$itemLen]["name"];
        }
        for($setsLen = 0; $setsLen < count($sets); $setsLen++){
            $setsAttr[$setsLen]["name"] = $sets[$setsLen]["name"];
            $setsAttr[$setsLen]["val"] = $sets[$setsLen]["val"];
        }
        return [
            "itemA" => $itemAttr,
            "setsA" => $setsAttr
        ];
    }
    $xmlData = mdr($xml);
    for($itemAlen = 0; $itemAlen < count($xmlData["itemA"]); $itemAlen++){
        echo(
            "balise item numero " . 
            $itemAlen . 
            ", id = " . 
            $xmlData["itemA"][$itemAlen]["id"] . 
            ", type = " . 
            $xmlData["itemA"][$itemAlen]["type"] . 
            ", name = " . 
            $xmlData["itemA"][$itemAlen]["name"] . 
            "<br/>"
        );
    }
    echo("<hr/>");
    for($setsAlen = 0; $setsAlen < count($xmlData["setsA"]); $setsAlen++){
        echo(
            "balise set numero " . 
            $setsAlen .
            ", name = " . 
            $xmlData["setsA"][$setsAlen]["name"] . 
            ",  val = " . 
            $xmlData["setsA"][$setsAlen]["val"] . "<br/>"
        );   
    }
    ?>
    et ton fichier xml à la premiére ligne ne contien rien donc ca génére des erreurs

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Je te remercie en effet ton code fonctione mais mon problème maintenant pour le coup et de savoir comment je peux utilisez ce code pour généré des INSERT sql ?

    Malheureusement j'ai 22600 item ~ repartie dans 197 fichier xml autant passer les fichier un à un par un script php ne me fait pas peur.


    Ps et en effet désolé j'ai vraiment pas était très clair dans mes postes précédent et j'en suis vraiment désolé

  7. #7
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    est ce que tu peux zipper le dossier qui contient tous les fichiers xml car sans les fichier je ne peux rien faire

  8. #8
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    Salut j'ai créer le code pour inserer tout les id , name , type des <item> et name , val des <set> en sql
    mais il y a tellement de donnée à inserer que la page ne se chargera jamais avant que le navigateur plante ou l'ordi plante donc il faut trouver un autre solution

    le mieux c'est de sécuriser le dossier avec un fichier htaccess et récupérer directement les donnée du fichier xml quand on a besoin

    ou un par un

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    les passer un a un était mon intention

  10. #10
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    est ce que ta base de donner c'est une base de donnée mysql ?

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    En effet Mysql en version 5.7.14

  12. #12
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    et ta table sql resemble a quoi

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Pour le moment elle n'est pas encore créer j’attendais d'avoir mes premier retour pour être sur de la forme

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Désolé pour le retard, Voila elle et en place sachant que les deux dernière value peuvent être null la première et en AI et la dernière restera vide pour le moment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO `item`(`id`, `item_id`, `item_type`, `item_cry_type`, `item_des`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5])

  15. #15
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    Salut tien les tables sql a importé et la clé de déchiffrement je te l'ai envoyer en message privé

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par H2R file comme l'aire Voir le message
    Salut tien les tables sql a importé et la clé de déchiffrement je te l'ai envoyer en message privé
    J'ai bien trouver la clé mais pas les fichier j'ai du louper quelque chose

  17. #17
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    Citation Envoyé par apokal Voir le message
    J'ai bien trouver la clé mais pas les fichier j'ai du louper quelque chose
    Mdr
    Il y sont quand tu dezzipe il y a un dossier et il sont dedans dit moi si sa marche ou je t'e passe un autre lien de téléchargement

  18. #18
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    Il y a eu un problème avec mon compte mega du coup je te donne une nouveau lien de téléchargement et la clé de déchiffrement par mp
    https://mega.nz/#!MagQwQIQ

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    super tu es au top ça marche du feu de dieu

    Tu pense que tu pourrait me mettre a dispo tout ou partit de ton script pour essayai de comprendre comment tu a réussie ?




    Par contre je n'avez pas vue mais malheureusement les crystal type ne sont pas dans les fichier

  20. #20
    Membre habitué
    Avatar de H2R file comme l'aire
    Homme Profil pro
    Pilote moto gp
    Inscrit en
    Février 2017
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Pilote moto gp

    Informations forums :
    Inscription : Février 2017
    Messages : 70
    Points : 173
    Points
    173
    Par défaut
    J'avais effecer mon code avant l'avant dernier message donc je les pas mais le principe était de récupérer les item et set dans des boucles imbrique autant dire que ca ma pris 5min pour tout inserer dans le tables

Discussions similaires

  1. [Debutant][XSLT] Recuperer un parametre et plusieur attributs
    Par zied_dev dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 01/09/2007, 09h58
  2. [DOM] DOM et plusieurs attributs
    Par Tyler Durden dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/08/2007, 22h03
  3. [XSLT] Select sur plusieurs attributs
    Par maitrebn dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 28/11/2006, 13h13
  4. [XSLT] Tester la valeur de plusieurs attributs
    Par NicaeaCivitas dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 23/10/2006, 17h25
  5. method avec plusieurs attributs
    Par *alexandre* dans le forum JSF
    Réponses: 1
    Dernier message: 03/08/2006, 10h42

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