Редактировать: Аренд прав, проблема в том, что SimpleXML странно обрабатывает пространства имен.
Возможно, вам потребуется передать весь XML-ответ в SimpleXMLElement () конструктор, а не только фрагмент, который вы предоставили здесь.В частности, вам нужен элемент <feed>
, поскольку он имеет объявления пространства имен:
<feed xmlns='http://www.w3.org/2005/Atom' xmlns:dxp='http://schemas.google.com/analytics/2009' xmlns:openSearch='http://a9.com/-/spec/opensearch/1.1/' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/"DUINSHcycSp7I2A9WxRWFEQ."' gd:kind='analytics#data'>
<entry gd:etag="W/"hdSFEs."" gd:kind="analytics#datarow">
<id>http://www.google.com/analytics/feeds/data?ids=ga:430&ga:keyword=cats&start-date=2011-04-10&end-date=2011-07-24</id>
<updated>2011-07-23T17:00:00.001-07:00</updated>
<title>ga:keyword=cats</title>
<link rel="alternate" type="text/html" href="http://www.google.com/analytics"/>
<dxp:dimension name="ga:keyword" value="cats"/>
<dxp:metric confidenceInterval="0.0" name="ga:organicSearches" type="integer" value="2"/>
</entry>
</feed>
Без этих объявлений пространства имен похоже, что ваша библиотека XML отбрасывает любые атрибуты или элементы пространства имен (например, <dxp:metric>
).
Вы также можете получить разные результаты из другой версии библиотеки XML.В моей системе ваш фрагмент создает элемент SimpleXMLE со всеми атрибутами и элементами, включая <metric>
, хотя я получаю кучу предупреждений PHP с жалобами на объявления о пропущенных пространствах имен.