Cómo leer un archivo XML en WordPress
4 may 2012, 09:14:45
Vistas: 13.8K
Votos: 3
Tengo un enlace de feed http://www.wdcdn.net/rss/presentation/library/client/iowa/id/128b053b916ea1f7f20233e8a26bc45d y necesito leer todos los elementos del feed incluyendo los créditos. Así es como se muestra el feed:
<item>
<title>
<![CDATA[Dave's Lawnmower Bish Bash]]>
</title>
<link>http://cache.wdcdn.net/cdn/asset/view/client/filmconstruction/package/library/id/918787/format/o/h/503e4d2418da8c167f7a75d25638a35e/?7a6013aef28682d61703dff120d21b12266b54a2a637283d7d4f0a0843a6f755b7d8fa6f17d0ac1585d9530a052e29240a1a3c75fb</link>
<guid>http://filmconstruction.wdcdn.net/l/p/?presentation=a211defdbe060c7e8f42e884b7e8f584#918787</guid>
<description>
<![CDATA[DW_MLA_Lamb_DavesLawnMowerBishBash_30.mov]]>
</description>
<pubDate>Mon, 30 Apr 2012 21:49:55 -0700</pubDate>
<enclosure url="http://cache.wdcdn.net/cdn/asset/view/client/filmconstruction/package/library/id/918787/format/o/h/503e4d2418da8c167f7a75d25638a35e/DW_MLA_Lamb_DavesLawnMowerBishBash_30.mov?7a6013aef28682d61703dff120d21b12266b54a2a637283d7d4f0a0843a6f755b7d8fa6f17d0ac1585d9530a052e29240a1a3c75fb.mov" type="video/quicktime" length="6289971"/>
<media:content url="http://cache.wdcdn.net/cdn/asset/view/client/filmconstruction/package/library/id/918787/format/o/h/503e4d2418da8c167f7a75d25638a35e/DW_MLA_Lamb_DavesLawnMowerBishBash_30.mov?7a6013aef28682d61703dff120d21b12266b54a2a637283d7d4f0a0843a6f755b7d8fa6f17d0ac1585d9530a052e29240a1a3c75fb.mov" fileSize="6289971" type="video/quicktime" duration="0" height="360" width="640"/>
<media:thumbnail url="http://cache.wdcdn.net/cdn/asset/view/client/filmconstruction/package/library/id/918787/format/t/size/lg/h/87884cce4f657e643d3df42ccc623101/library_918787_lg.jpg?7a6013aef28682d61703dff120d21b12266b54a2a637283d7d4f0a0843a6f755b7d8fa6f17d0ac1585d9530a052e29240a1a3c75fb.jpg" height="360" width="640"/>
<media:thumbnail url="http://cache.wdcdn.net/cdn/asset/view/client/filmconstruction/package/library/id/918787/format/t/size/sm/h/87884cce4f657e643d3df42ccc623101/library_918787_sm.jpg?7a6013aef28682d61703dff120d21b12266b54a2a637283d7d4f0a0843a6f755b7d8fa6f17d0ac1585d9530a052e29240a1a3c75fb.jpg" height="101" width="180"/>
<media:credit role="client" scheme="urn:feeds-wiredrive-com:credits">
<![CDATA[MLA]]>
</media:credit>
<media:credit role="agency" scheme="urn:feeds-wiredrive-com:credits">
<![CDATA[BMF]]>
</media:credit>
<media:credit role="director" scheme="urn:feeds-wiredrive-com:credits">
<![CDATA[David Wood]]>
</media:credit>
<media:keywords>
<![CDATA[Humour]]>
</media:keywords>
</item>
He usado este código para leer el contenido pero no puedo obtener todos los créditos con este código:
$file = file_get_contents('http://www.wdcdn.net/rss/presentation/library/client/iowa/id/128b053b916ea1f7f20233e8a26bc45d');
$xml = simplexml_load_string($file);
$doc = new DOMDocument();
$doc->load('http://www.wdcdn.net/rss/presentation/library/client/iowa/id/128b053b916ea1f7f20233e8a26bc45d');
$arrFeeds = array();
foreach ($doc->getElementsByTagName('item') as $node) {
$itemRSS = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'guid' => $node->getElementsByTagName('guid')->item(0)->nodeValue,
'content' => $node->getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'content')->item(0)->getAttribute('url'),
'vwidth' => $node->getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'content')->item(0)->getAttribute('width'),
'vheight' => $node->getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'content')->item(0)->getAttribute('height'),
'thumbnail' => $node->getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'thumbnail')->item(0)->getAttribute('url'),
'credit' => $node->getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'credit')->item(0)->getAttribute('role')
);
array_push($arrFeeds, $itemRSS);
}
¿Cómo puedo leer todos los créditos de cada elemento? ¿Alguien puede ayudarme a encontrar una solución para esto? Gracias de antemano.
Comentarios
Todas las respuestas a la pregunta
2
0
WordPress incluye y encapsula la clase SimplePie para la descarga, almacenamiento en caché y procesamiento de feeds. Obtener datos con espacios de nombres sería algo así:
$feed = fetch_feed( 'http://www.wdcdn.net/rss/presentation/library/client/iowa/id/128b053b916ea1f7f20233e8a26bc45d' );
$items = $feed->get_items();
foreach ( $items as $item ) {
$credit = $item->get_item_tags( 'http://search.yahoo.com/mrss/', 'credit' );
var_dump( $credit );
}
Consulta fetch_feed()
en el Codex.

Rarst
100K
4 may 2012 10:50:40
0
de todas formas, si haces algo como esto:
$medias = $node->getElementsByTagName('media');
foreach ( $medias as $media ) {
$media_items[] = $media->nodeValue;
}
$itemRSS = array (
'medias' => $media_items,
// todo lo que hayas hecho
);
deberías obtener tus resultados.

fischi
7.55K
4 may 2012 09:27:33
Preguntas relacionadas
4
respuestas
3
respuestas
3
respuestas