Leer XML en PHP 4 y PHP 5

Publicado: 15/02/2010
Hace un tiempo, tuve la necesidad de desarrollar un sistema en base a la lectura de hoja xml. Bien dije yo, no debe ser un gran problema en internet lo encuentro en un abrir y cerrar de ojos. Pero no, me costo y bastante.

Contento con mis ejemplos y tutoriales empecé a hacer pruebas locales hasta que lo tenia listo, pero oh sorpresa!!! el hosting de este cliente no soportaba PHP 5, ja, errores a montones (recomiendo que convenzan a sus clientes a usar su hosting de confianza, para evitar dolores de cabeza).

Otra vez tuve que empezar a buscar código pero esta vez para PHP 4 y como era de esperarse costo aún más.

En mi intento por transmitir mis experiencias profesionales y encontrar información como a mi me hubiese gustado encontrar posteo los dos códigos para que los puedan usar, mejorar, etc...

En esa ocasión se trataba de una hoja xml con datos de autos usados como la siguiente:
  1. <auto>
  2. <id>683</id>
  3. <cant>3</cant>
  4. <titulo>Ford F-100 XL TD</titulo>
  5. <anio>2005</anio>
  6. <km>162.500</km>
  7. <color>Rojo</color>
  8. <precio>85.000</precio>
  9. </auto>
Este es el código para PHP 4:
  1. $dom = domxml_open_file("usados/xml/usados.xml");
  2. $raiz = $dom->document_element();
  3. $ids = $raiz->get_elements_by_tagname('id');
  4. $cantidades = $raiz->get_elements_by_tagname('cant');
  5. $titulos = $raiz->get_elements_by_tagname('titulo');
  6. $anios = $raiz->get_elements_by_tagname('anio');
  7. $kms = $raiz->get_elements_by_tagname('km');
  8. $colores = $raiz->get_elements_by_tagname('color');
  9. $precios = $raiz->get_elements_by_tagname('precio');
  10. $i = 0;
  11. foreach ($ids as $id)
  12. {
  13. $arr_id[$i] = $id->get_content();
  14. $i++;
  15. }
  16. $i = 0;
  17. foreach ($cantidades as $cantidad)
  18. {
  19. $arr_cant[$i] = $cantidad->get_content();
  20. $i++;
  21. }
  22. $i=0;
  23. foreach ($titulos as $titulo)
  24. {
  25. $arr_titulo[$i] = $titulo->get_content();
  26. $i++;
  27. }
  28. $i = 0;
  29. foreach ($anios as $anio)
  30. {
  31. $arr_anio[$i] = $anio->get_content();
  32. $i++;
  33. }
  34. $i=0;
  35. foreach ($kms as $km)
  36. {
  37. $arr_km[$i] = $km->get_content();
  38. $i++;
  39. }
  40. $i = 0;
  41. foreach ($colores as $color)
  42. {
  43. $arr_color[$i] = $color->get_content();
  44. $i++;
  45. }
  46. $i=0;
  47. foreach ($precios as $precio)
  48. {
  49. $arr_precio[$i] = $precio->get_content();
  50. $i++;
  51. }
Y por último el código para leer xml en PHP 5:
  1. $arr_id = array();
  2. $arr_titulo = array();
  3. $arr_anio = array();
  4. $arr_km = array();
  5. $arr_color = array();
  6. $arr_precio = array();
  7. $i=0;
  8. $objDOM = new DOMDocument();
  9. $objDOM->load("usados/xml/usados.xml");
  10. $auto = $objDOM->getElementsByTagName("auto");
  11. foreach( $auto as $value )
  12. {
  13. $ids = $value->getElementsByTagName("id");
  14. $id = $ids->item(0)->nodeValue;
  15. $arr_id[$i] = $id;
  16. $cantidades = $value->getElementsByTagName("cant");
  17. $cantidad = $cantidades->item(0)->nodeValue;
  18. $arr_cant[$i] = $cantidad;
  19. $titulos = $value->getElementsByTagName("titulo");
  20. $titulo = $titulos->item(0)->nodeValue;
  21. $arr_titulo[$i] = $titulo;
  22. $anios = $value->getElementsByTagName("anio");
  23. $anio = $anios->item(0)->nodeValue;
  24. $arr_anio[$i] = $anio;
  25. $kms = $value->getElementsByTagName("km");
  26. $km = $kms->item(0)->nodeValue;
  27. $arr_km[$i] = $km;
  28. $colores = $value->getElementsByTagName("color");
  29. $color = $colores->item(0)->nodeValue;
  30. $arr_color[$i] = $color;
  31. $precios = $value->getElementsByTagName("precio");
  32. $precio = $precios->item(0)->nodeValue;
  33. $arr_precio[$i] = $precio;
  34. $i++;
  35. }
Espero les sea de utilidad, y el blog esta abierto a cualquier consulta y sugerencia.
Lucas Ramos

Dejanos tu comentario!


Comentarios de este post



Este post no tiene comentarios aún.