Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Manejo de xml con php

Estas en el tema de Manejo de xml con php en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buen dia alguien tiene infromacion sobre le manejo de xml con php... les agardezco la ayuda ya tencion prestada...
  #1 (permalink)  
Antiguo 14/01/2006, 10:01
 
Fecha de Ingreso: marzo-2003
Mensajes: 164
Antigüedad: 21 años, 1 mes
Puntos: 0
Manejo de xml con php

Buen dia alguien tiene infromacion sobre le manejo de xml con php...
les agardezco la ayuda ya tencion prestada
  #2 (permalink)  
Antiguo 08/02/2006, 15:42
Avatar de juanpablomagno  
Fecha de Ingreso: enero-2004
Mensajes: 35
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola foristas..
El manejo de XML con php se puede hacer de varias formas, ya q estamos en la sección de POO, utilizaremos la extension SimpleXML de php5, dado su facilidad de de utilizacion.
Extraido del manual oficial de php
Código PHP:
include 'example.php'// carga una cadena XML en $xmlstr
$xml simplexml_load_string($xmlstr); 
// Con esto mapeas en un "super" objeto un documento XML BIEN FORMADO !!
// Este objeto contiene un arbol de objetos y atributos.
// muestra el contenido del tag <plot> de la primera <movie>
foreach ($xml->movie as $movie) {
   echo 
$movie->plot'<br />';
}
// Muestra una lista con los contenidos del tag <plot> para cada <movie> 
Ya que el objeto $xml ha mapeado todo el documento XML podemos acceder a cualquiera de sus tags, inclusive a los atributos de los tags.
El manual oficial de php contiene la explicacion completa de esta extension.
En caso que no quieras utilizar esta extension, podrias optar por parsear el XML y utilizar otros mecanismos.
Saludos.
  #3 (permalink)  
Antiguo 13/02/2006, 11:56
 
Fecha de Ingreso: enero-2004
Mensajes: 235
Antigüedad: 20 años, 3 meses
Puntos: 0
SimpleXml, és para PHP5, pero para PHP4 que hay que libreria hay que usar?
  #4 (permalink)  
Antiguo 13/02/2006, 15:31
 
Fecha de Ingreso: julio-2005
Mensajes: 5
Antigüedad: 18 años, 9 meses
Puntos: 0
Yo uso el interprete de XML que viene por defecto con el Apache y funciona en PHP 4 perfectamente. En el manual oficial tienes información sobre todas las funciones de la libreria: "es.php.net/manual/es/ref.xml.php"
  #5 (permalink)  
Antiguo 06/03/2006, 13:21
Avatar de rasmarko  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 78
Antigüedad: 21 años, 5 meses
Puntos: 1
Mensaje

Existe una class para poder extraer datos de XML
Esta class te devuelve una matriz con todos los contenidos, gracias a las funciones array_push() y array_pop()

Código PHP:
<?
 
class xml {
   
    var 
$matriz = array();
    var 
$resultado;
    var 
$informacion;
   
    function 
xml($contenido) {
   
            
$this->resultado xml_parser_create ();
            
xml_set_object($this->resultado,$this);
            
xml_set_element_handler($this->resultado"abrir""cerrar");
           
            
xml_set_character_data_handler($this->resultado"info");
       
            
$this->informacion xml_parse($this->resultado,$contenido);
                          
            
xml_parser_free($this->resultado);
           
            return 
$this->matriz;
    }
    function 
abrir($parser$nombre$atributos) {
        
$etiqueta = array("nombre"=>$nombre,"atributos"=>$atributos);
        
array_push($this->matriz,$etiqueta);
    }
   
    function 
info($parser$etiqueta_info) {
        if(
trim($etiqueta_info)) {
            if(isset(
$this->matriz[count($this->matriz)-1]['info'])) {
               
$this->matriz[count($this->matriz)-1]['info'] .= $etiqueta_info;
            }
            else {
               
$this->matriz[count($this->matriz)-1]['info'] = $etiqueta_info;
            }
        }
    }
   
    function 
cerrar($parser$nombre) {
       
$this->matriz[count($this->matriz)-2]['hijo'][] = $this->matriz[count($this->matriz)-1];
        
array_pop($this->matriz);
    }
 }
 
 
?>
El uso de esta matriz es muy sencilla. Simplemente tendrías que verificar qué matriz corresponde a la información y luego imprimir.

Ejemplo:

Código PHP:
<?
$url 
"http://www.linka-web.com/index.xml";
$xml_contenido file_get_contents($url,'r');

$xml = new xml($xml_contenido);

echo 
'<pre>';
print_r($xml->matriz);
echo 
'</pre>';

?>
Lo anterior te devolvería todos los índices de la matriz, y puedes darle un uso práctico así... retomando aún el objeto $xml:

Código PHP:
 <?
 
 $xml 
= new xml($xml_contenido);
 
 
$etiqueta $xml->matriz[0][hijo][0][hijo][1][nombre];
$atributos $xml->matriz[0][hijo][0][hijo][1][atributos];
$informacion $xml->matriz[0][hijo][0][hijo][1][info];

echo 
'Etiqueta: '.$etiqueta;
echo 
'<br/>Atributos: '.$atributos;
echo 
'<br/>Información: '.$informacion;
 
 
?>
Espero que te sea de mucha utilidad como lo es para mi.
__________________
Fuentes - Diseweb - Frases Célebres
  #6 (permalink)  
Antiguo 14/03/2006, 20:52
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Creo que lo mejor sería usar DOM para trabajar con PHP y XML, lo veo muy completo, y unos metodos legibles y con coherencia. Es mi opinión.

Saludos.
__________________
Charlie.
  #7 (permalink)  
Antiguo 15/03/2006, 01:31
Avatar de rasmarko  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 78
Antigüedad: 21 años, 5 meses
Puntos: 1
Quizá tengas razón chcma, fíjate que utilizé hace tiempo las funciones de DOM en PHP y me parecieron muy precisas y coherentes. Ahora si que al gusto del cliente
__________________
Fuentes - Diseweb - Frases Célebres
  #8 (permalink)  
Antiguo 07/05/2006, 09:12
 
Fecha de Ingreso: abril-2003
Mensajes: 587
Antigüedad: 21 años
Puntos: 5
si pero.. como se edita? es decir yo tengo este xml

<?xml version="1.0" encoding="UTF-8"?>
<gallery>
<album title="Galeria" description="Mis obras" lgPath="panel/upload/">
<img src="1.jpg" />
<img src="2.jpg" />
</album>
</gallery>

necesito que el php añada filas de imagenes segun la mysql, como lo podria hacer?

gracias
__________________
Si la vida te da la espalda tocale el culo
  #9 (permalink)  
Antiguo 15/01/2008, 18:07
 
Fecha de Ingreso: enero-2008
Mensajes: 8
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Manejo de xml con php

Hola me gustaria utilizar tu ejemplo pero me da un error q dice :
Cannotinstantiate non existent class xml
me apodrias ayudar a solucionarlo ?
gracias
  #10 (permalink)  
Antiguo 15/01/2008, 19:39
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 5 meses
Puntos: 8
Re: Manejo de xml con php

php4 esta obsoleto deberían de migrar a php5 y ya se viene php6
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 02:20.