2010-09-14 7 views
2

je la partie suivante de mon xml:php simplexml - extraire grand nombre sur CDATA

<book number="AB 123" type="SCI"> 
    <info> 
    <type code="FIC"><![CDATA[Fiction]]></status> 
    <publish-time><![CDATA[20090110214000]]></publish-time> 
    </info> 
</book> 

Si je fais:

echo $key->info->type; 

Je reçois facile et agréable "Fiction"

MAIS si oui:

echo $key->info->publish-time; 

Je reçois "0".

Je pensais que cela pourrait avoir à faire avec ce (20090110214000) étant un nombre, mais j'ai essayé plusieurs façons d'extraire cela, mais sans succès. Quand je print_r je vois le 20090110214000 très bien là-dedans mais pourquoi je ne peux pas obtenir cette valeur (en tant que nombre ou chaîne) pour être renvoyé ou l'assigner à une variable?

+0

Voir aussi: [Noeud de lecture SimpleXML avec un nom de trait d'union] (http://stackoverflow.com/q/3626901/367456) – hakre

Répondre

0

Ce que vous faites est $key->info->publish - time, fondamentalement une soustraction d'une valeur indéfinie moins une constante inconnue (aboutit à 0). Utilisez $key->info->{'publish-time'} pour obtenir la valeur correcte.

+0

Sweeeeeeeeeeeeet! Merci beaucoup!! – Mark