Page 1 sur 1

test xml

Posté : 12 sept. 2007, 00:32
par thewind1
Bonsoir,

Je me familiarise avec simplexml (php 5.2.1) en testant des morceaux de code d'un livre et j'ai un message d'erreur que je ne comprends pas :

Parse error: syntax error, unexpected T_STRING in /var/www/test_infobulles/test3/test_xml.xml on line 1

code xml :
<?xml version="1.0" encoding="ISO-8859-1" ?>
<html>
<head>PHP 5</head>   
<body>
<h1>PHP 5</h1>
<p>La version 5 de <acronym>PHP</acronym>est sorti</p>
<p>La derniere version etait la 4.3.x</p>             
</body>
</html>
code php :
<?php  
/**Essai réinitialisé du code xml**/ 
require ('test_xml.xml'); 
$racine = simplexml_load_string('test_xml.xml');                          
?>

Posté : 12 sept. 2007, 00:40
par Hubert Roksor
Il y a 2 erreurs dans ton code PHP : la première c'est de faire un require (ou include) alors qu'il ne s'agit pas de code PHP. La seconde, c'est d'utiliser simplexml_load_string() au lieu de simplexml_load_file().

Le code correct devrait être : (le ?> final est facultatif)
<?php
$racine = simplexml_load_file('test_xml.xml');
De plus, je te recommande fortement de nommer tes variables du nom de l'élément racine. Dans l'exemple, ce serait donc $html. De cette façon, tu vois beaucoup mieux à quel nœud tu accèdes, par exemple :
$html = simplexml_load_file('test_xml.xml');
$h1 = $html->body->h1;
$title = $html->head->title;
Finalement, l'erreur que tu reçois est dû au "require" qui s'attend à voir du code PHP. Ton serveur doit être configuré avec l'option short_open_tag activée, et donc tout ce qui se trouve après le <? est considéré comme du PHP, comme si tu avais fais un script tel que
<?php
xml
<html>
// etc...

Posté : 12 sept. 2007, 00:54
par thewind1
Bonsoir Hubert Roksor,

Pourrais-tu m'expliquer les 2 dernières lignes stp ?

...
$h1 = $html->body->h1;
$title = $html->head->title;

Posté : 12 sept. 2007, 01:20
par Hubert Roksor
Ça récupère le contenu de l'élément h1 fils de body puis de title fils de head (c'est un exemple, l'élément n'existe pas dans ton fichier XML).

Posté : 12 sept. 2007, 01:28
par thewind1
Ok, merci.

Je ne connaissais pas cette façon de présenter !

Posté : 12 sept. 2007, 01:54
par Invité
Aurais-tu un lien qui pourrait m'en expliquer plus sur des cas pratiques concrets, par hasard ?