No se puede acceder a las entradas XML de Google Analytics Respuesta XML usando simplexml o xmldom
-
22-10-2019 - |
Pregunta
Estoy accediendo a los datos de Google Analytics usando Curl.
Su texto de respuesta contiene algo como lo siguiente.
<entry gd:etag='W/"A0EEQX47eSp7I2A9WhZSFU8."' gd:kind='analytics#datarow'>
<id>http://www.google.com/analytics/feeds/data?ids=ga:176&ga:pagePath=/indian-language-unicode-converter/punjabi-unicode-converter.html&start-date=2011-03-01&end-date=2011-03-31</id>
<updated>2011-03-30T17:00:00.001-07:00</updated>
<title>ga:pagePath=/indian-language-unicode-converter/punjabi-unicode-converter.html</title>
<link rel='alternate' type='text/html' href='http://www.google.com/analytics'/>
<dxp:dimension name='ga:pagePath' value='/indian-language-unicode-converter/punjabi-unicode-converter.html'/>
<dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='1131'/>
</entry>
<entry gd:etag='W/"A0EEQX47eSp7I2A9WhZSFU8."' gd:kind='analytics#datarow'>
<id>http://www.google.com/analytics/feeds/data?ids=ga:76&ga:pagePath=/indian-language-unicode-converter/hindi-unicode-converter.html&start-date=2011-03-01&end-date=2011-03-31</id>
<updated>2011-03-30T17:00:00.001-07:00</updated>
<title>ga:pagePath=/indian-language-unicode-converter/hindi-unicode-converter.html</title>
<link rel='alternate' type='text/html' href='http://www.google.com/analytics'/>
<dxp:dimension name='ga:pagePath' value='/indian-language-unicode-converter/hindi-unicode-converter.html'/>
<dxp:metric confidenceInterval='0.0' name='ga:pageviews' type='integer' value='974'/>
</entry>
En lo anterior quiero acceder al
Intenté usar simplexml y phpdomxml usando getglementsbytagname, pero aún así no pude alcanzar ese nodo.
Si alguien pudiera ayudarme con eso, entonces sería bueno ... solo la lógica ...
Y además, ¿qué es esta notación en XML DXP: Dimension?
Solución
DXP: es un espacio de nombres. Se puede encontrar más explicación aquí: espacio de nombres DXP en los resultados XML Feed
Si está utilizando PHP, puede probar una función similar a esta:
function parse_data($xml){
$doc = new DOMDocument();
$doc->loadXML($xml);
$entries = $doc->getElementsByTagName('entry');
$i = 0;
$results = array();
foreach($entries as $entry)
{
$countries[$i] = array();
$dimensions = $entry->getElementsByTagName('dimension');
foreach($dimensions as $dimension)
{
$results[$i][ltrim($dimension->getAttribute("name"),"ga:")] = $dimension->getAttribute('value');
}
$metrics = $entry->getElementsByTagName('metric');
foreach($metrics as $metric)
{
$results[$i][ltrim($metric->getAttribute('name'),"ga:")] = $metric->getAttribute('value');
}
$i++;
}
return $results;
}
Y la siguiente publicación de Alex Curelea es muy útil: Uso de la API de Google Analytics: obteniendo un número total de vistas de página
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow