Sie können <im:name>
nicht auf diese Weise zugreifen.
im:
ist ein Namespacepräfix: mit Namespaced-Tags Sie eine bestimmte Syntax verwenden müssen, um zu arbeiten.
Sie können alle Namespaces URI des Dokuments abrufen mit:
$namespaces = $xml->getDocNamespaces();
und Sie werden diese Anordnung erhalten:
Array
(
[im] => http://itunes.apple.com/rss
[] => http://www.w3.org/2005/Atom
)
Jedes Array Schlüssel ist das Namespacepräfix, jedes Array-Wert ist der Namespace-URI. Der URI mit einem leeren Schlüssel steht für den Namespace-URI des globalen Dokuments.
SimpleXML
hat nicht die beste Syntax, um mit Namespaces zu arbeiten (IMO DOMDocument
ist eine bessere Wahl). In Ihrem Fall haben Sie auf diese Weise zu tun:
$children = $xml->entry[$i]->children('im', True);
echo $children->artist . '<br>';
echo $children->name . '<br>';
Ergebnis für ->entry[0]
:
Prince & The Revolution
Purple Rain
Die ->children
Sekunden Parameter True
bedeuten „regard ersten Parameter als Präfix“; Als Alternative können Sie komplette Namensraum-URI auf diese Weise verwenden:
$children = $xml->entry[$i]->children('http://itunes.apple.com/rss');
... ♪ Ich wollte Sie lachen nur im lila regen ♪ sehen ...
http : //stackoverflow.com/questions/595946/parse-xml-with-namespace-using-simplexml – Ghost
es mit '$ xml- versuchen> Eintrag [$ i] -> { 'im: name'}' –
Danke für Ihre Antwort, aber es funktioniert nicht Ich bekomme ein leeres Ergebnis – Mohammed