Foros del Web » Programando para Internet » PHP »

XML Parser - Ayuda en general...

Estas en el tema de XML Parser - Ayuda en general... en el foro de PHP en Foros del Web. Hola, abro nuevo tema, xq imagino que es un problema relativamente común.. Necesito crear un XML a partir de un String q recibo de otro ...
  #1 (permalink)  
Antiguo 28/05/2009, 05:14
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
XML Parser - Ayuda en general...

Hola,
abro nuevo tema, xq imagino que es un problema relativamente común..

Necesito crear un XML a partir de un String q recibo de otro programa (en este caso flash).
Al principio probé con DomDocument, SimpleXML, XMLReader... A lo largo de la mañana he ido entendiendo que un XML no se puede crear a partir de un String tan a alegremente y necesito un parser.

He sustituido el código anterior por este:

Código PHP:
     $documento = "<?xml version="1.0\"?>";
    
$documento xml_parser_create'ISO-8859-1') ;    
    
xml_parser_set_option$documentoXML_OPTION_CASE_FOLDINGfalse );
    
xml_set_element_handler$documento'comienzo''final' );
    
xml_set_character_data_handler$documento'readData' );
    

    if ( !
xml_parse$documento$_REQUEST['documento'] ) ) 
        {die( 
'Error' );}
    else {echo 
"DOCUMENTO CREADO";}

    
    
xml_parser_free$documento );
Esto crea un parser XML - bien - pero ¿como accedo a los elementos del xml?

Q es exactamente el parser y cómo se supone que se utiliza? Cuando se lanzan los manejadores "comienzo" y "final"?

Tengo q definir los manejadores "comienzo" y "final" con un case para cada etiqueta del XML y tal?

Si alguien puede arrojar un poco de luz sobre el asunto... Un tutorial?

La documentación de PHP es un poco pobre (o yo soy tonta) y no me entero de nada...

Gracias
  #2 (permalink)  
Antiguo 28/05/2009, 06:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: XML Parser - Ayuda en general...

mmm.... de verdad SimpleXML no te ha servido??

aquí hay un ejemplo del manual de PHP
http://us2.php.net/manual/es/simplex...ples-basic.php


si es el parser mas simple, y sencillo...

Código PHP:
$noticias simplexml_load_file('rss.xml'); 
foreach (
$noticias->item as $noticia) { 
  echo 
"<b>$noticia->title:</b> ";
  echo 
"$noticia->description<br><br>"

Cita:
Iniciado por phpIni Ver Mensaje
[...] La documentación de PHP es un poco pobre [...]
todo parece pobreza si se toma con ligereza, hay que estar atentos y observar con paciencia...

...me parece raro, ya que la documentación oficial de PHP es absoluta, no crees?

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 28/05/2009 a las 07:01
  #3 (permalink)  
Antiguo 28/05/2009, 08:13
 
Fecha de Ingreso: abril-2009
Mensajes: 29
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: XML Parser - Ayuda en general...

Hola,
con el SimpleXML no me funcionaba, xq cargo el XML desde un string, no desde un archivo, y creo q ese era el problema.

La versión más simple que pude hacer fue esta:
Código PHP:
<?php

    $html_tabla
="<table border=\"0\"><tr><td>Item</td><td>Precio Unitario</td><td>Unidades</td></tr>";

    
$documento simplexml_load_string ($_REQUEST['documento']); 
    foreach (
$documento->item as $detalle) { 
        echo 
"<b>$detalle->nombre:</b> ";
        echo 
"$detalle->precio<br><br>"
    } 
    
vardump($documento);
?>
Y no imprime nada de nada, ni siquiera el documento completo, así que me imagino q no carga...

De todas maneras, poco a poco empiezo a entender como funciona el xml_parser..

Tienes q definir el manejador para el inicio y fin de etiqueta y también uno para texto plano. El parser va recorriendo el documento, aplica el manejador a cada elemento y listo. El único problema es q al insertarlos en un string para mostrarlo en el HTML se desordena un poco el asunto xD

Me ha ayudado mucho esto: webmastercristiano.com/PHP/ref.xml.html
así q akí lo dejo para la posteridad.

Cita:
todo parece pobreza si se toma con ligereza, hay que estar atentos y observar con paciencia...

...me parece raro, ya que la documentación oficial de PHP es absoluta, no crees?
Me refiero a la documentación del xml_parser.

Normalmente la documentación es super completa: vienen parámetros, salidas, ejemplos, excepciones... Con el parser me pareció q no deja nada claro como se crea el objeto, qué se puede parsear... Tb es verdad q soy un poco novata, pero me costó muchísimo entender la clase, comparado con lo q tardé en entender otras.

Creo q estoy cerca de la solución, postearé el resultado si es q lo consigo xD

Saludos
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




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