Bonjour à tous
Je voulais faire d'un fichier xml un fichier html avec un passage par un fichier xsl.
Grâce à Virgul je sais maintenant que cela n'est pas suffisant, car IE interprète directement le xml. Je me suis dirigé alors vers l'aide php au rayon expat et fonctionnalités xml pour php où j'ai trouvé ce fichier exemple pour formuler une structure de document xml.
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 <?xml version="1.0" encoding="ISO-8859-1" ?> <?xml-stylesheet type="text/xsl" href="essais.xslt"?> <recette> <entete> <auteur id="1">Casimir</auteur> <titre>Recette du Gloubi-Boulga</titre> <remarque>Pour une personne</remarque> </entete> <procedure> Remplir un saladier <BOLD>avec de la confiture de fraises</BOLD>, du chocolat râpé, des bananes écrasées, de la moutarde forte, des saucisses de Toulouse écrasées tièdes mais crues. Mélanger vigoureusement jusqu'à obtenir une bouillie marron-clair. Il est normal qu'il y ait des grumeaux. Les proportions sont environ égales pour tous les ingrédients, mais il est possible de varier selon les goûts de chacun. </procedure> </recette>
MAIS : il semble que quelque chose ne plait pas qui m'affiche cette erreur :
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 <?php $file = "donnees.xml"; $depth = array(); function debutElement($parser, $name, $attrs) { global $depth; for ($i = 0; $i < $depth[$parser]; $i++) { echo " "; } echo "$name\n"; $depth[$parser]++; } function finElement($parser, $name) { global $depth; $depth[$parser]--; } $xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "debutElement", "finElement"); if (!($fp = fopen($file, "r"))) { die("Impossible d'ouvrir le fichier XML"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("erreur XML : %s à la ligne %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?>
"Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\edition\debut.php on line 12" et le même pour la ligne 18
Je pense qu'il n'arrive pas à trouver une valeur qque part. j'ai essayé d'initialiser les variables des fonctions sans résultat.
Question 1 : qui peut me dire de quoi vient cett p...... d'erreur ???
Puis j'ai essayé d'ajouter le codejuste après l'écho du $name croyant qu'il allait afficher le nom de l'attribut d'une des balises xml ?!
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo "$attrs";
A la place dans le résultat j'ai "Array" qui s'affiche suite à tous les noms de balises.
Question 2 : Comment il sait que $name c'est le nom de la balise et qu'il ne sait pas que $attrs est le nom de l'attribut. Ou alors j'ai tout faux quand je crois que $attrs = attribut. Ou alors le code manque d'arguments ???
Merci de votre aide....
Partager