Le XML que je lis ressemble à ceci:
<show id="8511">
<name>The Big Bang Theory</name>
<link>http://www.tvrage.com/The_Big_Bang_Theory</link>
<started>2007-09-24</started>
<country>USA</country>
<latestepisode>
<number>05x23</number>
<title>The Launch Acceleration</title>
</latestepisode>
</show>
Pour obtenir (par exemple) le numéro du dernier épisode, je ferais:
$ep = $xml->latestepisode[0]->number;
Cela fonctionne très bien. Mais que ferais-je pour obtenir l'ID de <show id="8511">
?
J'ai essayé quelque chose comme:
$id = $xml->show;
$id = $xml->show[0];
Mais aucun n'a fonctionné.
Mettre à jour
Mon extrait de code:
$url = "http://services.tvrage.com/feeds/episodeinfo.php?show=".$showName;
$result = file_get_contents($url);
$xml = new SimpleXMLElement($result);
//still doesnt work
$id = $xml->show->attributes()->id;
$ep = $xml->latestepisode[0]->number;
echo ($id);
Ou Je. XML:
http://services.tvrage.com/feeds/episodeinfo.php?show=The.Big.Bang.Theory
Cela devrait marcher.
$id = $xml["id"];
Votre racine XML devient la racine de l'objet SimpleXML. votre code appelle une racine chid avec le nom 'show', qui n'existe pas.
Vous pouvez également utiliser ce lien pour certains tutoriels: http://php.net/manual/fr/simplexml.examples-basic.php
Vous devez utiliser attributs
Je crois que cela devrait fonctionner
$id = $xml->show->attributes()->id;
Cela devrait fonctionner . Vous devez utiliser des attributs avec type
$id = (string) $xml->show->attributes()->id;
var_dump($id);
Ou ca:
$id = strip_tags($xml->show->attributes()->id);
var_dump($id);
Vous devez utiliser attributes()
pour obtenir les attributs.
$id = $xml->show->attributes()->id;
Vous pouvez aussi faire ceci:
$attr = $xml->show->attributes();
$id = $attr['id'];
Ou vous pouvez essayer ceci:
$id = $xml->show['id'];
En regardant l'édition à votre question (<show>
est votre élément racine), essayez ceci:
$id = $xml->attributes()->id;
OR
$attr = $xml->attributes();
$id = $attr['id'];
OR
$id = $xml['id'];
essaye ça
$id = (int)$xml->show->attributes()->id;
Vous devez formater votre XML
correctement et la laisser soigneusement utiliser <root></root>
ou <document></document>
n'importe quoi .. voir la spécification XML et des exemples à http://php.net/manual/en/function.simplexml-load-string.php
$xml = '<?xml version="1.0" ?>
<root>
<show id="8511">
<name>The Big Bang Theory</name>
<link>http://www.tvrage.com/The_Big_Bang_Theory</link>
<started>2007-09-24</started>
<country>USA</country>
<latestepisode>
<number>05x23</number>
<title>The Launch Acceleration</title>
</latestepisode>
</show>
</root>';
$xml = simplexml_load_string ( $xml );
var_dump ($xml->show->attributes ()->id);
Une fois que vous avez correctement chargé le fichier xml à l’aide de l’objet SimpleXML, vous pouvez effectuer un print_r($xml_variable)
et trouver facilement les attributs auxquels vous pouvez accéder. Comme d'autres utilisateurs l'ont dit, $xml['id']
a également fonctionné pour moi.