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 :

Création de xml sur mesure


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut Création de xml sur mesure
    Bonjour,

    Je voudrai pouvoir créer un fichier XML à partir d'un array.
    Cet array ce présente comme 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
    Array
    (
        [0] => Array
            (
                [NUM] => 3
                [FILE] => nom_de_fichier.txt
                [FILE2] => nom de fichier.txt
                [DATE] => 21-11-2012 16:05:52
                [SOC] => test
                [CONTACT] => nom prenom
                [CL] => 1234
            )
     
        [1] => Array
            (
                [NUM] => 3
                [FILE] => nom_de_fichier.txt
                [FILE2] => nom de fichier.txt
                [DATE] => 21-11-2012 11:25:41
                [SOC] => test2
                [CONTACT] => nom2 prenom2
                [CL] => 5678
            )
     
        [2] => Array
            (
                [NUM] => 3
                [FILE] => nom_de_fichier.txt
                [FILE2] => nom de fichier.txt
                [DATE] => 21-11-2012 12:25:41
                [SOC] => test3
                [CONTACT] => nom3 prenom3
                [CL] => 5678
            )
    ...
    ...
    )
    Je voudrai à partir de ça, créer un fichier de ce style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <list>
       <node cl="1234">
           <fichier date="21-11-2012 16:05:52" soc="test" contact="nom prenom">nom_de_fichier.txt</fichier>
       </node>
       <node cl="5678">
           <fichier date="21-11-2012 11:25:41" soc="test2" contact="nom2 prenom2">nom_de_fichier.txt</fichier>
           <fichier date="21-11-2012 12:25:41" soc="test3" contact="nom3 prenom3">nom_de_fichier.txt</fichier>
       </node>
    </list>
    J'ai réussi à créer un fichier xml avec le contenu qui me convient, mais j'ai fait ça n'importe comment, et je ne sais pas comment gérer l'unicité des "cl". par exemple, si une entrée existe déjà dans le xml avec le cl 1234, je ne veux pas re-créer un nouveau noeud, mais plutôt ajouter un enfant "<fichier>" dans ce noeud. Par contre, s'il n'existe pas, alors on le crée.

    Je n'arrive plus à comprendre car j'ai fait tellement de tests que je ne sais plus où chercher. Auriez-vous un bout de code d'exemple, ou un piste à me filer svp ?

    J'espère que vous pourrez m'aider.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Volià une manière de faire:
    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
     
    <?php
    $array = Array
    (
    Array
            (
                'NUM' => 3,
                'FILE' => 'nom_de_fichier.txt',
                'FILE2' => 'nom de fichier.txt',
                'DATE' => '21-11-2012 12:25:41',
                'SOC' => 'test3',
                'CONTACT' => 'nom3 prenom3',
                'CL' => 5678
            ),
    Array
            (
                'NUM' => 3,
                'FILE' => 'nom_de_fichier.txt',
                'FILE2' => 'nom de fichier.txt',
                'DATE' => '21-11-2012 16:05:52',
                'SOC' => 'test',
                'CONTACT' => 'nom prenom',
                'CL' => 1234
            ),
     
     Array
            (
                'NUM' => 3,
                'FILE' => 'nom_de_fichier.txt',
                'FILE2' => 'nom de fichier.txt',
                'DATE' => '21-11-2012 11:25:41',
                'SOC' => 'test2',
                'CONTACT' => 'nom2 prenom2',
                'CL' => 5678
            )
     
     
    );
     
     
    if (is_array($array) && count($array))
    {
    	$new_array = array();
    	foreach ($array as $v)
    	{
    		$cl = $v['CL'];
    		unset($v['CL']);
    			$new_array[$cl][] = $v;
    	}
    	unset($array);
    	$xml = "<list>\n";
    	foreach ($new_array as $k => $v)
    	{
    		$xml .= '<node cl="'.$k.'">';
    		foreach ($v as $sv)
    		{
    			$xml .= '<fichier date="'.$sv["DATE"].'" soc="'.$sv["SOC"].'" contact="'.$sv["CONTACT"].'">'.$sv["FILE"].'</fichier>'."\n";
    		}
    		$xml .= "</node>\n";
    	}
    	$xml .="</list>\n";
    }
     
    echo $xml;
    ------------------------
    <list>
    <node cl="5678"><fichier date="21-11-2012 12:25:41" soc="test3" contact="nom3 prenom3">nom_de_fichier.txt</fichier>
    <fichier date="21-11-2012 11:25:41" soc="test2" contact="nom2 prenom2">nom_de_fichier.txt</fichier>
    </node>
    <node cl="1234"><fichier date="21-11-2012 16:05:52" soc="test" contact="nom prenom">nom_de_fichier.txt</fichier>
    </node>
    </list>

  3. #3
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut
    hahaha. j'y ai déjà pensé ce matin même.
    J'avais déjà codé une fonction qui transforme un array en xml. Du coup je suis passé par un array pour créer mon xml.

    Merci. je ferme le topic

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

Discussions similaires

  1. Générer un XML sur mesure ?
    Par altahir007 dans le forum VB.NET
    Réponses: 4
    Dernier message: 24/02/2013, 03h52
  2. [Mission/Télétravail] Création de site Web Pro sur Mesure .
    Par Mathieu-Web dans le forum Demandes
    Réponses: 0
    Dernier message: 14/03/2012, 14h18
  3. [Mission/Télétravail] Création de site internet sur mesure GRATUIT
    Par ideoservo dans le forum Demandes
    Réponses: 0
    Dernier message: 23/08/2009, 08h58
  4. [Mission/Télétravail] Création de site internet sur mesure (PHP/MySQL/Java/css/HTML/Symphony/Zend/Joomla)
    Par ideoservo dans le forum Demandes
    Réponses: 0
    Dernier message: 20/06/2009, 10h51

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