Hello,
Je sens que je suis proche du but, mais je cale à la toute fin ...
(Par ailleurs, j'ai aussi l'impression de ne pas avoir utilisé la bonne méthode )
Je m'explique : j'ai un fichier xml de contacts, et j'aimerais en faire un fichier ctt de contacts messenger (en gros, c'est un simple fichier xml) pour mon site web pour les enseignement .
Voilà où j'en suis : je parse le fichier xml, et j'essaie d'en extraire ce que je veux, mais ça coince quand je veux recréer le fichier xml.
Il me prend tout sauf les données qui sont parsées (qui sont pourtant parsées correctement puisque je peux en faire un echo).
S'il y a plus simple, je suis preneur, je suis un vrai débutant en xml :
Merci de votre aide.
Je sens que je suis proche du but, mais je cale à la toute fin ...
(Par ailleurs, j'ai aussi l'impression de ne pas avoir utilisé la bonne méthode )
Je m'explique : j'ai un fichier xml de contacts, et j'aimerais en faire un fichier ctt de contacts messenger (en gros, c'est un simple fichier xml) pour mon site web pour les enseignement .
Voilà où j'en suis : je parse le fichier xml, et j'essaie d'en extraire ce que je veux, mais ça coince quand je veux recréer le fichier xml.
Il me prend tout sauf les données qui sont parsées (qui sont pourtant parsées correctement puisque je peux en faire un echo).
S'il y a plus simple, je suis preneur, je suis un vrai débutant en xml :
<?php
$fichier = "http://www.enseignons.be/services/mail/enseignonsbe.xml";
// Ma propre fonction de traitement des balises ouvrantes
function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
{
// En fait... nous nous conteterons de mémoriser le nom de la balise
// afin d'en tenir compte dans la fonction "fonctionTexte"
global $derniereBaliseRencontree;
$derniereBaliseRencontree = $nomBalise;
}
// Ma propre fonction de traitement des balises fermantes
function fonctionBaliseFermante($parseur, $nomBalise)
{
// On oublie la dernière balise rencontrée
global $derniereBaliseRencontree;
$derniereBaliseRencontree = "";
}
// Ma propre fonction de traitement du texte
// qui est appelée par le "parseur"
function fonctionTexte($parseur, $texte)
{
global $derniereBaliseRencontree;
// Selon les cas, nous affichons le texte
// ou nous proposons un lien
// ATTENTION: Par défaut les noms des balises sont
// mises en majuscules
switch ($derniereBaliseRencontree) {
case "USERNAME":
$xml2 ='<contact type="1">$texte</contact>';
break;
}
}
// Création du parseur XML
$parseurXML = xml_parser_create();
// Je précise le nom des fonctions à appeler
// lorsque des balises ouvrantes ou fermantes sont rencontrées
xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
, "fonctionBaliseFermante");
// Je précise le nom de la fonction à appeler
// lorsque du texte est rencontré
xml_set_character_data_handler($parseurXML, "fonctionTexte");
// Ouverture du fichier
$fp = fopen($fichier, "r");
if (!$fp) die("Impossible d'ouvrir le fichier XML");
$xml = '<?xml version="1.0"?>
<messenger>
<service name=".NET Messenger Service">
<contactlist>';
// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024)) {
// Analyse de la ligne
// REM: feof($fp) retourne TRUE s'il s'agit de la dernière
// ligne du fichier.
xml_parse($parseurXML, $ligneXML, feof($fp)) or
die("Erreur XML");
}
$xml .= $xml2;
$xml .= '</contactlist>
</service>
</messenger>';
xml_parser_free($parseurXML);
$fp = fopen("contacttest.ctt", 'w+');
fputs($fp, $xml);
fclose($fp);
?>
Merci de votre aide.