2010-09-03 2 views
35

Je suis en train d'extraire des données de XML, mais quand j'exécute ce qui suit je reçois unL'utilisation de noms de noeuds XML avec des traits d'union en PHP

Attention: Invalid argument supplied for foreach() dans ...

Exemple de code:

foreach ($xml->custom-field-value as $milestone) 
{ 
    ...  
} 

il fonctionne très bien pour les noms de nœuds qui sont simples mots si je devine qu'il n'aime pas les traits d'union. Ai-je besoin de leur échapper et si oui comment?

+1

Vous faites déjà correctement dans la deuxième 'print' – Gordon

+0

Gordon - pas sûr de ce que le smiley pour « sourire penaud » est mais je devrait utiliser maintenant! Merci – williamsdb

Répondre

64

Depuis PHP manual:

Accès aux éléments dans un document XML qui contiennent des caractères non permises par la convention de nommage de PHP (par exemple le trait d'union) peut être accompli en encapsulant le nom de l'élément entre accolades et l'apostrophe.

Dans votre cas, vous faites:

$xml->{'custom-field-value'} 
+0

Parfait! Merci. – williamsdb

+0

Cela peut être marqué comme une question en double, mais j'ai trouvé ce combo Q/A beaucoup plus utile que l'original, car il était juste au point concernant mon problème. – Melikoth

Questions connexes