El método
getElementsByTagName nos permite acceder a un elemento directamente, sin necesidad de estar recorriendo cada uno de los nodos. Al usar
getElementsByTagName almacena todos los elementos encontrados y con el método
item podemos recorrer cada uno de ellos.
Código PHP:
Ver original<?php
header("Content-type: text/html; charset=utf-8"); $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18"); $xmlDOM = new DOMDocument();
$xmlDOM->loadXML($rss_forosdelweb);
$documentElement = $xmlDOM->documentElement;
$item = $documentElement->getElementsByTagName("item");
for ($i=0; $i<$item->length; $i++) {
}
Vamos a mostrar el foro donde me encuentro y los datos a tomar son: el enlace del mensaje a leer, el título y la descripción.
Código PHP:
Ver original<?php
header("Content-type: text/html; charset=utf-8"); $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18"); $xmlDOM = new DOMDocument();
$xmlDOM->loadXML($rss_forosdelweb);
$documentElement = $xmlDOM->documentElement;
echo "<span style='font-weight: bold; font-size: 26px;'>" . $documentElement->getElementsByTagName("title")->item(0)->nodeValue . "</span><br /><br />";
$item = $documentElement->getElementsByTagName("item");
for ($i=0; $i<$item->length; $i++) {
echo "<a href='". $item->item($i)->getElementsByTagName("link")->item(0)->nodeValue ."'>". $item->item($i)->getElementsByTagName("title")->item(0)->nodeValue ."</a> -> " . nl2br($item->item($i)->getElementsByTagName("description")->item(0)->nodeValue) . "<br /><br />"; }
Para obtener los datos del usuario que reportó y ver el avatar, tenemos que tomar la información de los elementos "namespaces". Para ello usamos el método
lookupNamespaceURI para obtener las direcciones de los "namespaces", luego con el método
getElementsByTagNameNS obtenemos los valores.
Código PHP:
Ver original<?php
header("Content-type: text/html; charset=utf-8"); $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18"); $xmlDOM = new DOMDocument();
$xmlDOM->loadXML($rss_forosdelweb);
$documentElement = $xmlDOM->documentElement;
$dc = $xmlDOM->lookupNamespaceURI("dc");
$content = $xmlDOM->lookupNamespaceURI("content");
$media = $xmlDOM->lookupNamespaceURI("media");
echo "<span style='font-weight: bold; font-size: 26px;'>" . $documentElement->getElementsByTagName("title")->item(0)->nodeValue . "</span><br /><br />";
$item = $documentElement->getElementsByTagName("item");
for ($i=0; $i<$item->length; $i++) {
echo "<span style='color: #f00; font-weight: bold;'>" . $item->item($i)->getElementsByTagNameNS($dc,"creator")->item(0)->nodeValue . "</span> ";
if($item->item($i)->getElementsByTagNameNS($media,"content")->item(0)->nodeType == XML_ELEMENT_NODE){
$avatar = $item->item($i)->getElementsByTagNameNS($media,"content")->item(0);
echo "<img src='". $avatar->getAttribute("url") ."' alt='". $avatar->getElementsByTagNameNS($media,"title")->item(0)->nodeValue ."' title='". $avatar->getElementsByTagNameNS($media,"title")->item(0)->nodeValue ."' />";
}
echo " -><a href='". $item->item($i)->getElementsByTagName("link")->item(0)->nodeValue ."'>". $item->item($i)->getElementsByTagName("title")->item(0)->nodeValue ."</a> -> " . nl2br($item->item($i)->getElementsByTagName("description")->item(0)->nodeValue) . "<br /><br />"; }