Programación Web y Scripting > PHP

 Xml Y Php

(1/2) > >>

JrcsDev:
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 ---<?php  $f="personas.xml";  $contenido = "";   if($da = fopen($f,"r"))   {  while ($aux= fgets($da,1024))     {   $contenido.=$aux;     }     fclose($da);     //echo $contenido;  }   else   {  echo "Error: no se ha podido leer el archivo <strong>$f</strong>";     exit();  }  //  $contenido=ereg_replace("á","a",$contenido);   $contenido=ereg_replace("é","e",$contenido);   $contenido=ereg_replace("í","i",$contenido);   $contenido=ereg_replace("ó","o",$contenido);   $contenido=ereg_replace("ú","u",$contenido);   $contenido=ereg_replace("Á","A",$contenido);   $contenido=ereg_replace("É","E",$contenido);   $contenido=ereg_replace("Í","I",$contenido);   $contenido=ereg_replace("Ó","O",$contenido);   $contenido=ereg_replace("Ú","U",$contenido);   $contenido=ereg_replace("Ñ","NI",$contenido);   $contenido=ereg_replace("ñ","ni",$contenido);    //  $tagnames = array ("cedula","nombres","apellidos");   //  if (!$xml = domxml_open_mem($contenido))   {   echo "Ha ocurrido un error al procesar el documento <strong>\"$f\"</strong> a XML <br>";     exit();   }   else   {  $raiz = $xml->document_element();       $tam=sizeof($tagnames);         for($i=0; $i<$tam; $i++)     {  $nodo = $raiz->get_elements_by_tagname($tagnames[$i]);       $j=0;       foreach ($nodo as $etiqueta)       {  $matriz[$j][$tagnames[$i]]=$etiqueta->get_content();         $j++;       }     }   }  //echo "Numero de Registros: ".count($matriz)."<br>";  //echo $matriz[1]["nombres"];?><table border="1"><tr>  <td>Cedula</td>  <td>Nombres</td>  <td>Apellidos</td></tr><?php  for ($i=0;$i<count($matriz);$i++)  {  echo "    <tr>      <td>".$matriz[$i]["cedula"]."</td>      <td>".$matriz[$i]["nombres"]."</td>      <td>".$matriz[$i]["apellidos"]."</td>    </tr>    ";  }?></table> 
personas.xml

--- Código: Text ---<?xml version="1.0" encoding="ISO-8859-1"?><todo>  <personas>    <cedula>16002223</cedula>    <nombres>Jesus Ramon</nombres>    <apellidos>Cabrera Suarez</apellidos>  </personas>  <personas>    <cedula>16825403</cedula>    <nombres>Isabel Patricia</nombres>    <apellidos>Kaiser Lira</apellidos>  </personas>  <personas>    <cedula>16285597</cedula>    <nombres>Robert Orlando</nombres>    <apellidos>Ramirez Mata</apellidos>  </personas></todo> 
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!

Altareum:
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.

JrcsDev:
excelente información. Gracias, voy a probar y te cuento como me va!

Qko:
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:
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

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa