problème de conversion d'un objet en string
Forum Programmation : problème de conversion d'un objet en string
Bonjour j'ai un petit problème de conversion en php avec du XML
Je parse un fichier XML en php où je récupère le fils <url> du noeud <image>
par la méthode
$doc = new DomDocument();
$doc->load("fichier.xml" );
$items = $channel->getElementsByTagName("item" );
$img = $item->getElementsByTagName("image" );
$image = $img->getElementByTagName("url" )->nodeValue;
mais à l'affichage j'ai l'erreur suivant:
Object of class DOMNodeList could not be converted to string
si quelqu'un a une idée pour m'aider je suis à l'écoute merci
il faut que tu fasses des boucles pour boucler sur tes éléments, car là tu récupères un tableau d'éléments.
$items = $channel->getElementsByTagName("item" ); <= te retourne un tableau de tous les éléments qui sont de type <item>, donc faut mettre un foreach(...)
$img = $item->getElementsByTagName("image" ); <= idem
Ou sinon, tu récupères le premier élément du tableau directement.
Répondre à OmaR
oui j'ai fai déja un foreach sur $items
mais c'est toujours le meme
merci
bah faut le fait sur img aussi ... ou sinon mettre un getElementByTagName (sans s)
Message édité par OmaR le 11-06-2008 à 14:50:50
Répondre à OmaR
ok je vais voir sa et je te dirai ce que sa donne
merci
j'ai essayer avec les deux en faisant getElementByTagName et ossi le foreach mais toujrs le meme message d'erreur
merci
et c'est quelle ligne l'erreur, et ça correspond à quelle ligne ?
Répondre à OmaR
Voici mon code en quelque sorte
<?php
function RSS_Channel($channel)
{
global $Common_Content;
$items = $channel->getElementsByTagName("item" );
// Extration de l'entêt du podcast
RSS_Tags($channel, 0); // get description of channel, type 0
// Extration des information des Episodes
foreach($items as $item)
RSS_Tags($item, 1); // get description of article, type 1
}
function RSS_Retrieve($url)
{
global $Common_Content;
$doc = new DomDocument;
$doc->loadXML($url);
/*$doc = new DomDocument("1.0", "UTF-8" );//();
$doc->load($url);*/
$channels = $doc->getElementsByTagName("channel" );
$Common_Content = array();
foreach($channels as $channel)
RSS_Channel($channel);
return ( count($Common_Content) > 0);
}
function RSS_Tags($item, $type)
{
global $Common_Content;
$y = array();
$x = array();
//Extration des information sur le titre du Podcast et ses épisodes
$y["title"] = $item->getElementsByTagName("title" )->item(0)->firstChild->data;
//Extration des information sur le tag du Podcast et ses épisodes
$tag = $item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "category" );
if($tag->length!=0)
{
for($i=0; $i<$tag->length; $i++)
{
$tag_att = $tag->item($i)->hasAttribute("text" );
if($tag_att == false)
array_push($x,$item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "category" )->item($i)->nodeValue);
else
array_push($x,$item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "category" )->item($i)->getAttribute("text" ));
}
}
elseif($item->getElementsByTagName("category" )->length!=0)
{
for($i=0; $i<$item->getElementsByTagName("category" )->length; $i++)
{
$tag_att = $item->getElementsByTagName("category" )->item($i)->hasAttribute("text" );
if($tag_att == false)
array_push($x,$item->getElementsByTagName("category" )->item($i)->nodeValue);
else
array_push($x,$item->getElementsByTagName("category" )->item($i)->getAttribute("text" ));
}
}
else
$y["category"]="";
$y["category"] = $x;
//Extration des information sur l'auteur du Podcast et ses épisodes
$auteur = $item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "author" );
if($tag->length!=0)
$auteur =$item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "author" )->item(0)->nodeValue;
elseif($item->getElementsByTagName("author" )->length!=0)
$auteur = $item->getElementsByTagName("author" )->item(0)->nodeValue;
else
$auteur = false;
$y["author"] = $auteur;
//Extration des information sur le lien url du Podcast et ses épisodes
/*$link = $item->getElementsByTagName("link" )->item(0)->getAttribute("href" );
if($link==false)
$link = $item->getElementsByTagName("link" )->item(0)->firstChild->data;
$y["link"] = $link;//$item->getElementsByTagName("link" )->item(0)->firstChild->data;*/
$link = $item->getElementsByTagName("link" );
if($link != false)
{
if($link->item(0)->hasAttribute("href" ) == false)
$link = $link->item(0)->firstChild->data;
else
$link = $item->getElementsByTagName("link" )->item(0)->getAttribute("href" );
}
else
$link = false;
$y["link"] = $link;
//Extration des information sur le lien url des épisodes
$guid = $item->getElementsByTagName("guid" );
if($guid->length!=0)
$guid = $guid->item(0)->firstChild->data;
elseif($item->getElementsByTagName("enclosure" )->length!=0)
$guid = $item->getElementsByTagName("enclosure" )->item(0)->getAttribute("url" );
else
$guid = false;
$y["guid"] = $guid;
//Extration des information sur la description du Podcast
$desc = $item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "summary" );
if($desc->length!=0)
$desc = $item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "summary" )->item(0)->nodeValue;
elseif($item->getElementsByTagName("description" )->length!=0)
$desc = $item->getElementsByTagName("description" )->item(0)->nodeValue;
else
$desc = false;
$y["description"] = $desc;
//Extration des information sur le tag du Podcast
$date = $item->getElementsByTagName("pubDate" );
if($date->length == 0)
$date = $item->getElementsByTagName("lastBuildDate" )->item(0)->firstChild->data;
elseif($date->length != 0)
$date =$date->item(0)->firstChild->data;
else
$date = false;
$y["updated"] = $date;
//Extraction de l'adresse url de l'image ou du logo du podcast
$image = $item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "image" );
//$images = $item->getElementsByTagName("image" );
if($image->length!=0)
{
$image_att = $image->item(0)->hasAttribute("url" );
if($image_att != false)
$image = $item->getElementsByTagNameNS("http://www.itunes.com/dtds/podcast-1.0.dtd", "image" )->item(0)->getAttribute("url" );
//else
//$image = $image->getElementByTagName("url" )->nodeValue;
}
elseif($item->getElementsByTagName("image" )->length!=0)
{
if($item->getElementsByTagName("image" )->item(0)->hasAttribute("url" ) != false)
$image = $item->getsElementByTagName("image" )->item(0)->getAttribute("url" );
else
{
$img = $item->getElementByTagName("image" );
$image = $img->getElementByTagName("url" )->nodeValue;
}
}
else
$image = false;
$y["image"] = $image;
$y["type"] = $type;
array_push($Common_Content, $y);
}
function podcast_Display($string, $size, $chanopt = false, $descopt = false, $dateopt = false)
{
global $Common_Content;
global $Common_Style;
global $Common_Date_Font;
$opened = false;
$page = "";
//if(Atom_Retrieve($string) == false)
//{
if(RSS_Retrieve($string) == false)
return "<br>$string vide...<br>";
//}
if($size !=0)
$recents = array_slice($Common_Content, 0, $size+1);
else
$recents = array_slice($Common_Content, 0);
//Parcours du tableau contenant les
foreach($recents as $article)
{
$type = $article["type"];
$title = $article["title"];
$link= $article["link"];
$url_episode = $article["guid"];
$tag = $article["category"];
$image = $article["image"];
if($type == 0)
{
if($chanopt != true) continue;
if($opened == true)
{
$page .="</ul>\n";
$opened = false;
}
$page .="<b>";
$page .= "<".$Common_Style."><a href=\"$link\">$title</a><br>";
for($i=0; $i<sizeof($tag); $i++)
$page .= "$tag[$i]<br>";
$page .= "<br>$image";
//print_r($tag);
}
else
{
if($opened == false && $chanopt == true)
{
$page .= "<ul>\n";
$opened = true;
}
$page .= "<".$Common_Style."><a href=\"$url_episode\">$title</a><br>";
for($i=0; $i<sizeof($tag); $i++)
$page .= "$tag[$i]<br>";
//print_r($tag);
}
if($descopt != false)
{
$description = $article["description"];
if($description != false)
$page .= "$description";
}
if($dateopt != false)
{
$updated = $article["updated"];
if($updated != false)
$page .= "<br /><font $Common_Date_Font>$updated</font>";
}
$page .= "</".$Common_Style.">\n";
if($type == 0)
$page .="</b>";
}
if($opened == true)
$page .="</ul>\n";
return $page."\n";
}
?>
et j'appel la fonction podcast_Display()
et j'ai l'erreur au signalé au nivo de laparti mise en gras dans la fonction podcast_Display()
merci
Hello,
Il n'y a qu'une seule possibilité pour que tu aies cette erreur (je pense), c'est que ça aille dans :
Code :
|
A ce niveau là, si $image_att est égal à false, tu vas te retrouver avec un tableau dans la variable image
Répondre à OmaR
ok je vais y voir celui là
merci
Il y a 245 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
