• Jueves 28 de Marzo de 2024, 13:58

Autor Tema:  Xml Y Php  (Leído 2841 veces)

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Xml Y Php
« en: Lunes 5 de Mayo de 2008, 21:09 »
0
Hace tiempo encontré en código por alli (lo he visto en muchas webs) para trabajar XML con PHP, le corregí una cuestion e hice una prueba, y logré leer desde un archivo XML... el código es el siguiente:

index.php
Código: Text
  1. <?php
  2.   $f="personas.xml";
  3.   $contenido = "";
  4.   if($da = fopen($f,"r"))
  5.   {  while ($aux= fgets($da,1024))
  6.     {   $contenido.=$aux;
  7.     }
  8.     fclose($da);
  9.     //echo $contenido;
  10.   }
  11.   else
  12.   {  echo "Error: no se ha podido leer el archivo <strong>$f</strong>";
  13.     exit();
  14.   }
  15.   //
  16.   $contenido=ereg_replace("á","a",$contenido);
  17.   $contenido=ereg_replace("é","e",$contenido);
  18.   $contenido=ereg_replace("í","i",$contenido);
  19.   $contenido=ereg_replace("ó","o",$contenido);
  20.   $contenido=ereg_replace("ú","u",$contenido);
  21.   $contenido=ereg_replace("Á","A",$contenido);
  22.   $contenido=ereg_replace("É","E",$contenido);
  23.   $contenido=ereg_replace("Í","I",$contenido);
  24.   $contenido=ereg_replace("Ó","O",$contenido);
  25.   $contenido=ereg_replace("Ú","U",$contenido);
  26.   $contenido=ereg_replace("Ñ","NI",$contenido);
  27.   $contenido=ereg_replace("ñ","ni",$contenido);
  28.  
  29.   //
  30.   $tagnames = array ("cedula","nombres","apellidos");
  31.   //
  32.   if (!$xml = domxml_open_mem($contenido))
  33.   {   echo "Ha ocurrido un error al procesar el documento <strong>\"$f\"</strong> a XML <br>";
  34.     exit();
  35.   }
  36.   else
  37.   {  $raiz = $xml->document_element();
  38.  
  39.     $tam=sizeof($tagnames);
  40.    
  41.     for($i=0; $i<$tam; $i++)
  42.     {  $nodo = $raiz->get_elements_by_tagname($tagnames[$i]);
  43.       $j=0;
  44.       foreach ($nodo as $etiqueta)
  45.       {  $matriz[$j][$tagnames[$i]]=$etiqueta->get_content();
  46.         $j++;
  47.       }
  48.     }
  49.   }
  50.   //echo "Numero de Registros: ".count($matriz)."<br>";
  51.   //echo $matriz[1]["nombres"];
  52. ?>
  53. <table border="1">
  54. <tr>
  55.   <td>Cedula</td>
  56.   <td>Nombres</td>
  57.   <td>Apellidos</td>
  58. </tr>
  59. <?php
  60.   for ($i=0;$i<count($matriz);$i++)
  61.   {  echo "
  62.     <tr>
  63.       <td>".$matriz[$i]["cedula"]."</td>
  64.       <td>".$matriz[$i]["nombres"]."</td>
  65.       <td>".$matriz[$i]["apellidos"]."</td>
  66.     </tr>
  67.     ";
  68.   }
  69. ?>
  70. </table>
  71.  

personas.xml
Código: Text
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <todo>
  3.   <personas>
  4.     <cedula>16002223</cedula>
  5.     <nombres>Jesus Ramon</nombres>
  6.     <apellidos>Cabrera Suarez</apellidos>
  7.   </personas>
  8.   <personas>
  9.     <cedula>16825403</cedula>
  10.     <nombres>Isabel Patricia</nombres>
  11.     <apellidos>Kaiser Lira</apellidos>
  12.   </personas>
  13.   <personas>
  14.     <cedula>16285597</cedula>
  15.     <nombres>Robert Orlando</nombres>
  16.     <apellidos>Ramirez Mata</apellidos>
  17.   </personas>
  18. </todo>
  19.  

Ando buscando ahora como insertar más registros en el XML... y cómo borrar uno en específico... alguien tiene idea de como hacerlo??? a mi se me ocurre un camino muy largo, pero me gustaria escuchar ideas... GRACIAS!
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Xml Y Php
« Respuesta #1 en: Miércoles 21 de Mayo de 2008, 16:41 »
0
Para borrar un nodo, tenés la función "remove_child"

 Por otro lado, los "ereg_replace" que estás haciendo, están conceptualmente mal. Si necesitas utilizar caracteres especiales, utiliza CDATA.

Y por último, para abrir el xml, no uses fopen, utilizá directamente la función domxml_open_file



Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

JrcsDev

  • Miembro MUY activo
  • ***
  • Mensajes: 245
  • Nacionalidad: ve
    • Ver Perfil
    • http://codigo7.wordpress.com/
Re: Xml Y Php
« Respuesta #2 en: Lunes 26 de Mayo de 2008, 19:29 »
0
excelente información. Gracias, voy a probar y te cuento como me va!
Sígueme en Twitter]
Donar comida a los chicos necesitados!
Todo lo puedo en Cristo que me fortalece...

Qko

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Xml Y Php
« Respuesta #3 en: Jueves 31 de Julio de 2008, 20:16 »
0
Hola a todoas, tengo una duda no si se alguien me pudiera ayudar, tengo que hacer una clase me permitar abrir un archivo jrxml desde php y no tengo ninguna idea se los agradesco si me puedieran ayudar

Qko

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Xml Y Php
« Respuesta #4 en: Viernes 1 de Agosto de 2008, 21:08 »
0
Hola,
Estube checando tu codigo pero me marco un error en if (!$xml = domxml_open_mem($contenido)) y no se porque no se si me podrias ayudar de ante mano mil gracias

dragnus

  • Miembro MUY activo
  • ***
  • Mensajes: 103
  • Nacionalidad: co
    • Ver Perfil
    • http://www.panalcorp.com
Re: Xml Y Php
« Respuesta #5 en: Domingo 3 de Agosto de 2008, 15:02 »
0
para pode utilizar este recurso del php domxml_open_mem debes primero... habilitarlo en el php.ini