外部のAtomフィードを解析していますが、一部のエントリには名前空間の子のコレクションがあります。これらの子から属性を取得できません。省略例:
$feed = <<<EOD
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:ai="http://activeinterface.com/thincms/2012">
<entry>
<title>Some Title</title>
<ai:image>path/to/some/image</ai:image>
<ai:ocurrence dateid="20120622" date="Fri, June 22, 2012" time="6:00 pm" />
<ai:ocurrence dateid="20120720" date="Fri, July 20, 2012" time="6:00 pm" />
</entry>
</feed>
EOD;
$xml = new SimpleXmlElement($feed);
foreach ($xml->entry as $entry){
echo $entry->title;
$namespaces = $entry->getNameSpaces(true);
$ai = $entry->children($namespaces['ai']);
echo $ai->image;
foreach($ai->ocurrence as $o){
echo $o['date'];
}
}
名前空間化された子の属性取得以外はすべて正常に機能します。子のタグ名が名前空間化されていない場合は、正常に機能します。(属性ではなく)ノード値を取得する場合、名前空間が設定されていても、正常に機能します。私は何が欠けていますか?