LIRE DES BALISES XML [Résolu]

Messages postés
95
Date d'inscription
dimanche 8 janvier 2006
Dernière intervention
7 avril 2011
- 23 nov. 2006 à 14:47 - Dernière réponse :
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
- 23 nov. 2006 à 17:28
bonjour,

je suis en PHP5 j'arrive bien a lire le contenu de balise simple dans un fichier xml mais je n'arrive pas a lire des balises aves des caracteres specifiques, je m'explique

j'arrive bien à lire une balise <titre>jljsjflkjlfsj<titre>  en ecrivant $titre=$item->titre;

mais comment faire pour lire une balise du type <titre:1> kjljlkjfsjlkjs <titre:1> ?

merci de votre aide .... :-)
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
- 23 nov. 2006 à 17:02
3
Merci
Ou mieux :

<?php
$xml = <<<EOD
<root xmlns:itunes="http://toto.org/itunes-image">
   
</root>
EOD;
$sxe = new SimpleXMLElement($xml);
$entries = $sxe -> xpath ('//itunes:image/@href');
foreach ($entries as $sImg) {
    echo (string)$sImg, '
';
}
?>

Merci malalam 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de malalam
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
- 23 nov. 2006 à 15:22
0
Merci
Hello,

y a un problème là.
Je vois 3 solutions :
- soit ton "titre:1" est le nom complet de ta balise, auquel cas ta balise est incorrecte. ":" est une valeur incorrecte pour un "tagname".
- soit ton "titre:1" se réfère à un espace de nom. Auquel cas, il manque des trucs.
http://xmlfr.org/documentations/tutoriels/050912-0001
- soit tu utilises cette reco des espaces de nom pour créer un nom de balise normalement incorrect...auquel cas, t'es pas dans la mouise ;-) Je ne pense pas que ce soit prévu par php.
Une solution est peut-être :
$sTagName = 'titre:1';
echo $item -> $sTagName;

En tous cas, on aurait besoin de plus d'infos pour se prononcer.
Commenter la réponse de malalam
Messages postés
95
Date d'inscription
dimanche 8 janvier 2006
Dernière intervention
7 avril 2011
- 23 nov. 2006 à 15:29
0
Merci
en fait j'essaye de lire mon flux xml produit pour itunes sur mon propre site ... et j'ai des balises du genre :

Jason et Brad deux gentlemen dans Besançon ! Vous avez croisez deux personnes étranges en train de se filmer, vous allez les découvrir !
Ce n’est pas vraiment du cinéma, ni de la radio d’ailleurs, surtout pa


et je voudrais reussir a recuperer ce que j'ai entre ces balises .... mon problème c'est effectivement les ':'
et je ne sais pas comment faire

merci
Commenter la réponse de cs_loupile
Messages postés
95
Date d'inscription
dimanche 8 janvier 2006
Dernière intervention
7 avril 2011
- 23 nov. 2006 à 15:51
0
Merci
je crois que tu as raison, il s'agit d'un espace de nom, j'ai pris le tutoriel que tu m'as envoyé ... mais je n'y comprends rien ...:-(
sais tu comment recuperé les valeurs a l'interieur d'un espace de nom de typ ?

merci d'avance
Commenter la réponse de cs_loupile
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
- 23 nov. 2006 à 15:58
0
Merci
Ok je pige mieux, ce sont bien des préfixes.

Voici un exemple, en passant par xpath :

<?php
$xml = <<<EOD

   <title>My Book</title>
   <chapter id="1">
       <chap:title>Chapter 1</chap:title>
       Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
           In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
           Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
           ultricies id, mauris.

   </chapter>
   <chapter id="2">
       <chap:title>Chapter 2</chap:title>
       Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
           gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
           vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
           tellus, pharetra id, faucibus eu, dapibus dictum, odio.

   </chapter>

EOD;

$sxe = new SimpleXMLElement($xml);
$entries = $sxe -> xpath ('//chap:title');
foreach ($entries as $sChapTitle) {
    echo (string)$sChapTitle, '
';
}
?>
Commenter la réponse de malalam
Messages postés
95
Date d'inscription
dimanche 8 janvier 2006
Dernière intervention
7 avril 2011
- 23 nov. 2006 à 16:14
0
Merci
bon alors j'essaye avec xpath sur un truc du genre

et j'ai mis comme code

$rss = simplexml_load_file($tag); 
$imagetunes=$rss->channel->xpath ('//itunes:image');
$image2=$imagestunes['href'];

echo '';

et boulet comme je suis  là y'a rien qui se passe ..... :-(

tu as une idée de ce que je n'ai pas fait correctement ?

merci encore
Commenter la réponse de cs_loupile
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
- 23 nov. 2006 à 16:59
0
Merci
En espèrant que ton espace de nom est défini (là, je l'ai défini au hasard hein ) :
<?php
$xml = <<<EOD
<root xmlns:itunes="http://toto.org/itunes-image">
   
</root>
EOD;

$sxe = new SimpleXMLElement($xml);

$entries = $sxe -> xpath ('//itunes:image');

foreach ($entries as $sChapTitle) {
    echo (string)$sChapTitle['href'], '
';
}
?>
T'as oublié le foreach () de toute façon : xpath renvoie un noeud à parcourir.
Commenter la réponse de malalam
Messages postés
95
Date d'inscription
dimanche 8 janvier 2006
Dernière intervention
7 avril 2011
- 23 nov. 2006 à 17:07
0
Merci
c'est le pied .. un grand merci .... ca marche super !!!!!! :-)
Commenter la réponse de cs_loupile
Messages postés
10918
Date d'inscription
lundi 24 février 2003
Dernière intervention
2 mars 2010
- 23 nov. 2006 à 17:28
0
Merci
Merci de valider la/les réponses qui t'ont aidées afin d'aider les autres.
Commenter la réponse de malalam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.