Foros del Web » Programando para Internet » PHP »

[APORTE] Leer XML con SimpleXML y DOM

Estas en el tema de [APORTE] Leer XML con SimpleXML y DOM en el foro de PHP en Foros del Web. En este aporte nos concentraremos en cómo leer un archivo XML. Usaré de ejemplo el RSS de este foro. La dirección del RSS de este ...
  #1 (permalink)  
Antiguo 28/03/2010, 14:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
[APORTE] Leer XML con SimpleXML y DOM

En este aporte nos concentraremos en cómo leer un archivo XML. Usaré de ejemplo el RSS de este foro. La dirección del RSS de este foro es http://www.forosdelweb.com/external....S2&forumids=18.

Vamos a ver dos librerías que nos ayudarán a leer el rss, estás son SimpleXML y DOM. El usar una o la otra va a depender de su simplicidad y/o control. SimpleXML tiene más restricciones que el DOM, pero SimpleXML es más fácil y va "directo al grano" (en ingles se dice "straitforward", no encontré una buena traducción para ese término) de lo que yo deseo ver.

Empezaremos usando la librería SimpleXML. Para obtener la información del RSS vamos a usar la función file_get_contents (para más información de como obtener los datos de una dirección externa puedes ver este aporte). De esta forma es como podemos obtener la información del RSS (para poder visualizar bien la estructura sugerimos, en este caso, que vea el código fuente):
Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xml = new SimpleXMLElement($rss_forosdelweb);
  5. var_dump($xml);
De esa forma podemos ver la estructura y los valores que tiene cada elemento. Una de las formas, que podemos manejar la información de cada uno de los elementos, es usando el método children.
Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xml = new SimpleXMLElement($rss_forosdelweb);
  5. foreach($xml->children() as $segunda_gen){
  6.     var_dump($segunda_gen);
  7.     //Para separar cada array y se pueda visualizar
  8.     echo str_pad("",20,PHP_EOL);
  9.     foreach($segunda_gen->children() as $tercera_gen){
  10.         var_dump($tercera_gen);
  11.         //Para separar cada array y se pueda visualizar
  12.         echo str_pad("",20,PHP_EOL);
  13.         foreach($tercera_gen->children() as $cuarta_gen){
  14.             var_dump($cuarta_gen);
  15.             //Para separar cada array y se pueda visualizar
  16.             echo str_pad("",20,PHP_EOL);
  17.         }
  18.     }
  19. }
  20.  
  21. /**
  22. * Adquirir la información con una función recursiva
  23. * Info de función recursiva -> http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Funci%C3%B3n_recursiva
  24. * Hace lo mismo que el ejemplo anterior
  25. */
  26. header("Content-type: text/html; charset=utf-8");
  27. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  28. $xml = new SimpleXMLElement($rss_forosdelweb);
  29. function recursiveFunc($rss){
  30.     foreach($rss->children() as $gen){
  31.         var_dump($gen);
  32.         if(count($gen->children()) > 0){
  33.             recursiveFunc($gen);
  34.             //Para separar cada array y se pueda visualizar
  35.             echo str_pad("",20,PHP_EOL);
  36.         }
  37.     }
  38. }
  39. recursiveFunc($xml);

Otra forma de poder ver los datos de un elemento es indicando la ruta directamente. La forma como podemos indicar la ruta es usando (->) en vez de indicarlo como un array ($foo["bar"]). El motivo es que te estás moviendo entre objetos. Ejemplo, si yo quisiera ver solamente los datos del elemento item
Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xml = new SimpleXMLElement($rss_forosdelweb);
  5. foreach($xml->channel->item as $item){
  6.     var_dump($item);
  7. }

Una vez ya sabemos lo que deseamos obtener, solo es necesario indicar las rutas de cada uno de los elementos que queremos. Por ejemplo, deseo 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
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xml = new SimpleXMLElement($rss_forosdelweb);
  5. echo "<span style='font-weight: bold; font-size: 26px;'>" . $xml->channel->title . "</span><br /><br />";
  6. foreach($xml->channel->item as $item){
  7.     echo "<a href='".$item->link."'>".$item->title."</a> -> " . nl2br(htmlentities($item->description, ENT_QUOTES, "UTF-8")) . "<br /><br />";
  8. }

Para poder obtener los datos de quién fue el que creo el mensaje y el avatar, tenemos que añadir unas líneas para poder mostrar la información de el Espacio de nombres (en ingles "namespaces"). Primero necesitamos obtener todas las direcciones de los "namespaces" y el método que nos ayudará es getNamespaces. Este método lo que hará es ingresar en alguna variable los atributos y las direcciones que requerimos para poder leer los "namespaces". Los prefijos de los "namespaces" en este rss son dc, content, media. Luego ingresamos la dirección en el método de children. Vamos a tomar el mismo código anterior y le queremos añadir de quién fue el mensaje y el avatar.
Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xml = new SimpleXMLElement($rss_forosdelweb);
  5. $getNS = $xml->getNamespaces(true);
  6. echo "<span style='font-weight: bold; font-size: 26px;'>" . $xml->channel->title . "</span><br /><br />";
  7. foreach($xml->channel->item as $item){
  8.     echo "<span style='color: #f00; font-weight: bold;'>" . $item->children($getNS["dc"])->creator . "</span> ";
  9.     //Verificamos que exista el nodo
  10.     if(count($item->children($getNS["media"])) > 0){
  11.         $avatar = $item->children($getNS["media"])->content;
  12.         echo "<img src='". $avatar->attributes()->url ."' alt='". $avatar->children($getNS["media"])->title ."' title='". $avatar->children($getNS["media"])->title ."' />";
  13.     }
  14.     echo " -><a href='".$item->link."'>".$item->title."</a> -> " . nl2br(htmlentities($item->description, ENT_QUOTES, "UTF-8")) . "<br /><br />";
  15. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 29/04/2010 a las 10:10
  #2 (permalink)  
Antiguo 28/03/2010, 14:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Para poder acceder a un documento XML con la librería DOM, lo necesitamos hacer de esta forma
Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xmlDOM = new DOMDocument();
  5. $xmlDOM->loadXML($rss_forosdelweb);
  6. var_dump($xmlDOM->saveXML());

Primero hemos almacenado la información del RSS en la variable $rss_forosdelweb usando la función file_get_contents. Creamos el objeto de DOMDocument y cargamos al objeto la información almacenada en la variable $rss_forosdelweb. Para mostrar la información en pantalla usamos el método saveXML. Si deseamos movernos en cada uno de los elementos podemos usar la propiedad childNodes. Estaremos usando en este aporte las propiedas nodeType, nodeName, nodeValue, childNodes, firstChild, lastChild, nextSibling, previusSibling, parentNode, documentElement y attributes.
  • nodeType = Verificar cual es el tipo de nodo. El valor que publica esta variable es un número entero, y representa una constante predefinida.
  • nodeName = Indica el nombre del nodo.
  • nodeValue = Nos ofrece acceder a ciertos contenidos en los nodos. Nos permite ver atributos, secciones de CDATA, comentarios y texto.
  • childNodes = Nos permite acceder a los nodos que son descendientes directos del nodo en que nos encontremos.
  • firstChild = Nos permite acceder al primer descendiente directo del nodo en que nos encontramos.
  • lastChild = Nos permite acceder al último descendiente directo del nodo en que nos encontramos.
  • nextSibling = Nos permite acceder al siguiente elemento que está en el nodo donde nos encontramos.
  • previusSibling = Nos permite acceder al elemento anterior que está en el nodo donde nos encontramos.
  • parentNode = Nos permite acceder al nodo ascendiente directo del nodo en que nos encontramos.
  • documentElement = Es más bien una forma de enfocarnos en el cuerpo de los elementos. Sin él, nos traerá también información del primer elemento, que en este caso es <rss...>
  • attributes = Nos da la información de los atributos en un elemento.

Para poder acceder a cada uno de los elementos, podemos lograrlo de esta forma:
Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xmlDOM = new DOMDocument();
  5. $xmlDOM->loadXML($rss_forosdelweb);
  6. $documentElement = $xmlDOM->documentElement;
  7. foreach($documentElement->childNodes as $primera_gen){
  8.     if($primera_gen->nodeType != XML_TEXT_NODE){
  9.         echo $primera_gen->nodeName;
  10.         if($primera_gen->hasAttributes()){
  11.             foreach($primera_gen->attributes as $attr){
  12.                 echo " [" . $attr->nodeName . "]";
  13.             }
  14.         }
  15.         echo "\n";
  16.         foreach($primera_gen->childNodes as $segunda_gen){
  17.             if($segunda_gen->nodeType != XML_TEXT_NODE){
  18.                 echo "\t" . $segunda_gen->nodeName;
  19.                 if($segunda_gen->hasAttributes()){
  20.                     foreach($segunda_gen->attributes as $attr){
  21.                         echo " [" . $attr->nodeName . "]";
  22.                     }
  23.                 }
  24.                 echo "\n";
  25.                 foreach($segunda_gen->childNodes as $tercera_gen){
  26.                     if($tercera_gen->nodeType != XML_TEXT_NODE){
  27.                         echo "\t\t" . $tercera_gen->nodeName;
  28.                         if($tercera_gen->hasAttributes()){
  29.                             foreach($tercera_gen->attributes as $attr){
  30.                                 echo " [" . $attr->nodeName . "]";
  31.                             }
  32.                         }
  33.                         echo "\n";
  34.                         foreach($tercera_gen->childNodes as $cuarta_gen){
  35.                             if($cuarta_gen->nodeType != XML_TEXT_NODE){
  36.                                 echo "\t\t\t" . $cuarta_gen->nodeName;
  37.                                 if($cuarta_gen->hasAttributes()){
  38.                                     foreach($cuarta_gen->attributes as $attr){
  39.                                         echo " [" . $attr->nodeName . "]";
  40.                                     }
  41.                                 }
  42.                                 echo "\n";
  43.                                 if($cuarta_gen->firstChild->nextSibling->nodeType == XML_ELEMENT_NODE){
  44.                                     foreach($cuarta_gen->childNodes as $quinta_gen){
  45.                                         if($quinta_gen->nodeType != XML_TEXT_NODE){
  46.                                             echo "\t\t\t\t" . $quinta_gen->nodeName;
  47.                                             if($quita_gen->hasAttributes()){
  48.                                                 foreach($quita_gen->attributes as $attr){
  49.                                                     echo " [" . $attr->nodeName . "]";
  50.                                                 }
  51.                                             }
  52.                                             echo "\n";
  53.                                         }
  54.                                     }
  55.                                 }
  56.                             }
  57.                         }
  58.                     }
  59.                 }
  60.             }
  61.         }
  62.     }
  63. }
  64.  
  65. /**
  66. * Adquirir la información con una función recursiva
  67. * Info de función recursiva -> http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=Funci%C3%B3n_recursiva
  68. * Hace lo mismo que el ejemplo anterior
  69. */
  70. header("Content-type: text/html; charset=utf-8");
  71. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  72. $xmlDOM = new DOMDocument();
  73. $xmlDOM->loadXML($rss_forosdelweb);
  74. $documentElement = $xmlDOM->documentElement;
  75. /**
  76. * Función para mostrar tabulado los elementos.
  77. */
  78. function addTab($v,$n){
  79.     if($v->firstChild->nextSibling->nodeType == XML_ELEMENT_NODE || $v->firstChild->nodeType == XML_CDATA_SECTION_NODE){
  80.         return ++$n;
  81.     }
  82. }
  83. function searchElements($value, $n=0){
  84.     foreach($value->childNodes as $gen){
  85.         if($gen->nodeType != XML_TEXT_NODE){
  86.             echo str_pad("", $n, "\t") . $gen->nodeName;
  87.             if($gen->hasAttributes()){
  88.                 foreach($gen->attributes as $attr){
  89.                     echo " [" . $attr->nodeName . "]";
  90.                 }
  91.             }
  92.             echo "\n";
  93.             if($gen->firstChild->nextSibling->nodeType == XML_ELEMENT_NODE || $gen->firstChild->nodeType == XML_CDATA_SECTION_NODE){
  94.                 searchElements($gen, addTab($gen,$n));
  95.             }
  96.         }
  97.     }
  98. }
  99. searchElements($documentElement);

Para poder acceder a los atributos, hemos primero verificado que existan usando el método hasAttributes y si hay atributos, los mostramos con la propiedad attributes.

Hemos estado verificando, antes del foreach, si el próximo nodo es del tipo Texto o no, para poder continuar con el foreach (si no da un "Warning", para mayor detalle de los errores ver este aporte). El motivo de estos Textos es que se crea un espacio entre cada elemento. Cuando el DOM verifica el próximo nodo, encuentra que el próximo elemento es del tipo Texto. Si los elementos se encuentre juntos no aparece el tipo texto. Esto se puede lograr haciendo un preg_replace y remplazando los espacios que hay entre cada elemento. No es lo recomendable, ya que en este caso, se usan secciones de CDATA y estos contienen información en formato de HTML. Cuando el preg_replace una los elementos, también afectará los que haya encontrado en el CDATA. Ejemplo de uso
Código PHP:
Ver original
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $rss_forosdelweb = preg_replace("/\s*(<[^>]*>)\s*/","$1",$rss_forosdelweb);
  5. $xmlDOM = new DOMDocument();
  6. $xmlDOM->loadXML($rss_forosdelweb);
  7. $documentElement = $xmlDOM->documentElement;
  8. /**
  9. * Función para mostrar tabulado los elementos.
  10. */
  11. function addTab($v,$n){
  12.     if($v->firstChild->nextSibling->nodeType == XML_ELEMENT_NODE || $v->firstChild->nodeType == XML_CDATA_SECTION_NODE){
  13.         return ++$n;
  14.     }
  15. }
  16. function searchElements($value, $n=0){
  17.     foreach($value->childNodes as $gen){
  18.         if($gen->nodeType != XML_TEXT_NODE){
  19.             echo str_pad("", $n, "\t") . $gen->nodeName;
  20.             if($gen->hasAttributes()){
  21.                 foreach($gen->attributes as $attr){
  22.                     echo " [" . $attr->nodeName . "]";
  23.                 }
  24.             }
  25.             echo "\n";
  26.             if($gen->firstChild->nextSibling->nodeType == XML_ELEMENT_NODE || $gen->firstChild->nodeType == XML_CDATA_SECTION_NODE){
  27.                 searchElements($gen, addTab($gen,$n));
  28.             }
  29.         }
  30.     }
  31. }
  32. searchElements($documentElement);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 26/05/2010 a las 09:37
  #3 (permalink)  
Antiguo 28/03/2010, 14:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

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
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xmlDOM = new DOMDocument();
  5. $xmlDOM->loadXML($rss_forosdelweb);
  6. $documentElement = $xmlDOM->documentElement;
  7. $item = $documentElement->getElementsByTagName("item");
  8. for ($i=0; $i<$item->length; $i++) {
  9.     var_dump($item->item($i)->nodeName);
  10.     var_dump($item->item($i)->nodeValue);
  11. }

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
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xmlDOM = new DOMDocument();
  5. $xmlDOM->loadXML($rss_forosdelweb);
  6. $documentElement = $xmlDOM->documentElement;
  7. echo "<span style='font-weight: bold; font-size: 26px;'>" . $documentElement->getElementsByTagName("title")->item(0)->nodeValue . "</span><br /><br />";
  8. $item = $documentElement->getElementsByTagName("item");
  9. for ($i=0; $i<$item->length; $i++) {
  10.     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 />";
  11. }

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
  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. $rss_forosdelweb = file_get_contents("http://www.forosdelweb.com/external.php?type=RSS2&forumids=18");
  4. $xmlDOM = new DOMDocument();
  5. $xmlDOM->loadXML($rss_forosdelweb);
  6. $documentElement = $xmlDOM->documentElement;
  7. $dc = $xmlDOM->lookupNamespaceURI("dc");
  8. $content = $xmlDOM->lookupNamespaceURI("content");
  9. $media = $xmlDOM->lookupNamespaceURI("media");
  10. echo "<span style='font-weight: bold; font-size: 26px;'>" . $documentElement->getElementsByTagName("title")->item(0)->nodeValue . "</span><br /><br />";
  11. $item = $documentElement->getElementsByTagName("item");
  12. for ($i=0; $i<$item->length; $i++) {
  13.     echo "<span style='color: #f00; font-weight: bold;'>" . $item->item($i)->getElementsByTagNameNS($dc,"creator")->item(0)->nodeValue . "</span> ";
  14.     if($item->item($i)->getElementsByTagNameNS($media,"content")->item(0)->nodeType == XML_ELEMENT_NODE){
  15.         $avatar = $item->item($i)->getElementsByTagNameNS($media,"content")->item(0);
  16.         echo "<img src='". $avatar->getAttribute("url") ."' alt='". $avatar->getElementsByTagNameNS($media,"title")->item(0)->nodeValue ."' title='". $avatar->getElementsByTagNameNS($media,"title")->item(0)->nodeValue ."' />";
  17.     }
  18.     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 />";
  19. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 29/03/2010 a las 17:54
  #4 (permalink)  
Antiguo 28/03/2010, 19:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Si alguien tiene alguna otra forma de lograrlo, es bienvenido a este aporte.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 28/03/2010, 19:45
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 15 años
Puntos: 65
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Excelente aporte y explicacion. Te felicito abimaelrc, un aporte muy util.

Un saludo!
__________________
HV Studio
Diseño y desarrollo web
  #6 (permalink)  
Antiguo 29/03/2010, 08:21
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Buen aporte.. buena explicacion..
te debo el karma! hasta seguir repartiendo :P




saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #7 (permalink)  
Antiguo 30/03/2010, 16:40
 
Fecha de Ingreso: marzo-2010
Mensajes: 32
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

gracias abimaelrc


muchas gracias...

abimaelrc GRACIAS...MUCHO NO ENTENDI PERO GRACIAS IGUAL :D
  #8 (permalink)  
Antiguo 30/03/2010, 16:47
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Cita:
Iniciado por Seba_10 Ver Mensaje
abimaelrc GRACIAS...MUCHO NO ENTENDI PERO GRACIAS IGUAL :D


Si no dominas PHP, te sugiero que leas un manual, como por ejemplo http://www.forosdelweb.com/wiki/Manual_de_PHP
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 31/03/2010, 14:13
 
Fecha de Ingreso: marzo-2010
Mensajes: 32
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Y no hay otra manera de hacerlo...??

Con algun programa o algo??
  #10 (permalink)  
Antiguo 31/03/2010, 14:20
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 17 años
Puntos: 5
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Excelente aporte abimaelrc!!!!!.
A mi me viene como anillo al dedo jejejejeje
  #11 (permalink)  
Antiguo 31/03/2010, 14:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

@Seba_10, desconozco si existe un programa que haga el trabajo por ti, pero como te indique lee ese manual para que te puedas desenvolver.

@eulloa, espero que entonces te sea útil.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 31/03/2010, 16:26
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Gran aporte como siempre :)

Pregunto si no se podía haber tratado la información pasando el xml a un array, creo que se gana simplicidad, pero entonces no sería un "tutorial de simpleXML"

Saludos!
  #13 (permalink)  
Antiguo 03/04/2010, 09:56
 
Fecha de Ingreso: marzo-2010
Mensajes: 32
Antigüedad: 14 años, 7 meses
Puntos: 0
La verdad que ni ganas tengo de leer todo esoo de php

ademas para mi php es chino basico

va pero podria leerlo haci aprendo

osea no entiendo q hacer aca...que hago creo un archivo php y adentro ese codigo o que??

me parece que voy a leer el manual asi no quedo como un ignorante y de paso aprendo php que es mejor que HTML :0 y que cualquier idioma...menos C++

abimaelrc una pregunta...tenes algun tutorial de como hacer para proteger las URL con htaccess??

osea que cuando el usuario ponga http://dominio.com.ar/EJ/algo.xml lo redireccione al index?? o a otra pagina...pero que no tenga acceso..

hay te califique

Última edición por GatorV; 03/04/2010 a las 14:36
  #14 (permalink)  
Antiguo 16/07/2010, 12:50
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 9 meses
Puntos: 146
Respuesta: [APORTE] Leer XML con SimpleXML y DOM

Cita:
me parece que voy a leer el manual asi no quedo como un ignorante y de paso aprendo php que es mejor que HTML :0 y que cualquier idioma...menos C++
si ... lee el manual

Etiquetas: dom, rss, simplexml, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 4 personas




La zona horaria es GMT -6. Ahora son las 08:12.