Foros del Web » Programando para Internet » PHP »

Leer XML con Simple XML en PHP

Estas en el tema de Leer XML con Simple XML en PHP en el foro de PHP en Foros del Web. Hola a toda la comunidad de Foros del Web, siempre agradecido por la ayuda que me han brindado. Tengo la siguiente inquietud, estoy haciendo un ...
  #1 (permalink)  
Antiguo 03/01/2012, 13:26
 
Fecha de Ingreso: marzo-2009
Ubicación: Sancti Spíritus, CUBA
Mensajes: 150
Antigüedad: 15 años, 1 mes
Puntos: 7
Leer XML con Simple XML en PHP

Hola a toda la comunidad de Foros del Web, siempre agradecido por la ayuda que me han brindado.

Tengo la siguiente inquietud, estoy haciendo un sistema multilenguaje y quisiera saber de que forma puedo obtener los datos de este XML:

Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <language name="Español" isoCode="es-DO" location="República Dominicana">
  3. <contextMenu>
  4.     <item name="contextMenuCreate"><![CDATA[Crear]]></item>
  5.     <item name="contextMenuDelete"><![CDATA[Eliminar]]></item>
  6.     <item name="contextMenuMove"><![CDATA[Mover]]></item>
  7. </contextMenu>
  8. <modulesMenu>
  9.         <item name="modulesPath"><![CDATA[Ruta de los modulos]]></item>
  10.         <item name="modulesTitle"><![CDATA[Modulos]]></item>
  11. </modulesMenu>
  12. </language>

Lo que quisiera es obtener:
1- Todos los tag llamados <item></item> sin importar su tagb padre /en este caso, los 5 tag "item"
2- una vez obtenidos los 5 , quisiera obtener el valor dentro de ellos. Seria una llamada por ejemplo
$xml:parser -> item -> contextMenuDelete
y de esa forma obtener el valor de ese tag mediante su attributo name

Ayudenme con eso por favor se los agradeceré inmensamente. Saludos!

Última edición por PHPcool; 03/01/2012 a las 13:33
  #2 (permalink)  
Antiguo 03/01/2012, 13:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Leer XML con Simple XML en PHP

Muestra lo que tengas hecho, no esperes a que alguien lo haga por ti.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/01/2012, 13:54
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Leer XML con Simple XML en PHP

Ya leiste la ayuda de PHP? aquí mando un enlace de la página que te puede dar una guia.

http://co.php.net/manual/es/simplexm...ples-basic.php

La idea es leer el xml, luego con un foreach recorrer todas las etiquetas que necesitas leer. Creo que con el ejemplo te puede servir perfectamente para lo que necesitas.

Ojala te sirva de ayuda.
  #4 (permalink)  
Antiguo 03/01/2012, 16:09
 
Fecha de Ingreso: marzo-2009
Ubicación: Sancti Spíritus, CUBA
Mensajes: 150
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Leer XML con Simple XML en PHP

Cita:
Iniciado por cuasatar Ver Mensaje
Ya leiste la ayuda de PHP? aquí mando un enlace de la página que te puede dar una guia.

http://co.php.net/manual/es/simplexm...ples-basic.php

La idea es leer el xml, luego con un foreach recorrer todas las etiquetas que necesitas leer. Creo que con el ejemplo te puede servir perfectamente para lo que necesitas.

Ojala te sirva de ayuda.
Muchas Gracias! De todos modos terminé optando por usar constantes , meviene mejor y mas rapido Gracias d everdad

Cita:
Iniciado por pateketrueke Ver Mensaje
Muestra lo que tengas hecho, no esperes a que alguien lo haga por ti.
Saludos. creo que he indicado lo que tengo hecho, de que vale poner lo que ya tengo hecho sino funciona, de ninguna manera, y de que vale poner una linea que tengo de codigo? Ademas no estoy esperando a que nadie lo haga por, sino de que me den alguna idea o algo con lo cual guiarme para poder resolver el problema,
De todos modos muchas Gracias!
  #5 (permalink)  
Antiguo 03/01/2012, 16:42
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Leer XML con Simple XML en PHP

Bueno en la duda inicial de leer el XML puedes hacer algo así rápido:

Código PHP:
Ver original
  1. <?php
  2. $xml = file_get_contents('tuxml.xml');
  3. $sxe = new SimpleXMLElement($xml);
  4.  
  5. function valor($att, $sxe) {
  6.     $item =  $sxe->xpath('//item[@name="' . $att . '"]');
  7.     return $item[0];
  8. }
  9.  
  10. echo valor('contextMenuMove', $sxe);

o tal vez algo así:

Código PHP:
Ver original
  1. <?php
  2. $xml = file_get_contents('tuxml.xml');
  3. $sxe = new SimpleXMLElement($xml);
  4.  
  5. $item = $sxe->xpath('//item');
  6.  
  7. foreach ($item as $i) {
  8.     $att = $i->attributes();
  9.     $item[(string) $att['name']] = (string) $i;
  10. }
  11.  
  12. echo $item['modulesTitle'];
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #6 (permalink)  
Antiguo 03/01/2012, 17:39
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Leer XML con Simple XML en PHP

otra variante

feed.xml
Código XML:
Ver original
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <notas>
  3. <nota>
  4.     <autor>luis rodriguez</autor>
  5.     <fecha>05/12/2011 12:21:59</fecha>
  6.     <titulo>ejemplo de xml parser</titulo>
  7.     <contenido><![CDATA[ este es el contenido de rodriguez ]]></contenido>
  8. </nota>
  9. <nota>
  10.     <autor>victor martinez</autor>
  11.     <fecha>05/12/2011 12:21:59</fecha>
  12.     <titulo>ejemplo de xml parser</titulo>
  13.     <contenido><![CDATA[ este es el contenido de martinez ]]></contenido>
  14. </nota>
  15. </notas>

leerfeed.php
Código PHP:
Ver original
  1. <?php
  2. $sx = simplexml_load_file('feed.xml');
  3. $salida ="";
  4. foreach($sx->nota as $item){
  5. $autor= $item->autor;
  6. $contenido= $item->contenido;
  7. $fecha= $item->fecha;
  8. $titulo= $item->titulo;
  9. $salida .= "Autor: " . $autor . "<br><b>$titulo</b> [$fecha]<br>" . strip_tags($contenido) . "<hr>";
  10. }
  11. echo $salida;
  12. ?>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 02/04/2013, 01:34
 
Fecha de Ingreso: enero-2013
Mensajes: 30
Antigüedad: 11 años, 3 meses
Puntos: 0
Exclamación Respuesta: Leer XML con Simple XML en PHP

Una pregunta. ¿En la línea número 9 el punto que hay antes del igual es correcto?

Cita:
Iniciado por emprear Ver Mensaje
leerfeed.php
Código PHP:
Ver original
  1. <?php
  2. $sx = simplexml_load_file('feed.xml');
  3. $salida ="";
  4. foreach($sx->nota as $item){
  5. $autor= $item->autor;
  6. $contenido= $item->contenido;
  7. $fecha= $item->fecha;
  8. $titulo= $item->titulo;
  9. $salida .= "Autor: " . $autor . "<br><b>$titulo</b> [$fecha]<br>" . strip_tags($contenido) . "<hr>";
  10. }
  11. echo $salida;
  12. ?>
__________________
Hello World!
  #8 (permalink)  
Antiguo 02/04/2013, 03:52
Avatar de bookmaster  
Fecha de Ingreso: febrero-2002
Ubicación: Toledo
Mensajes: 976
Antigüedad: 22 años, 2 meses
Puntos: 67
Respuesta: Leer XML con Simple XML en PHP

Eso sirve para concatenar el texto, une el valor que tenga $salida que en este caso sería "" y le añade "Autor: " y lo que sige.

No es por ofender, pero este tema tiene mas de 1 año, trata de no reflotar mensajes antiguos. Para ello trata de abrir una consulta nueva.
__________________
Decir si te a funcionado la respuesta es ¡GRATIS!. Por favor indicarlo.
http://www.lohacemosweb.net
http://tutoriales.lohacemosweb.net
  #9 (permalink)  
Antiguo 17/06/2013, 19:55
 
Fecha de Ingreso: junio-2013
Mensajes: 3
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Leer XML con Simple XML en PHP

no se como leer este xml
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta forua="true" http-equiv="Cache-Control" content="no-cache"/>
</head>
<template>
<do type="accept" label="Menu">
<go href="/w/InicioRucWap.jsp" />
</do>
<do type="options" label="Back">
<prev />
</do>
</template>
<card title="Resultado" id="frstcard">
<p>
<small><b>N&#xFA;mero Ruc. </b> 10445656676 - aaaaaaaaappppppppppp <br/></small>
<small><b>Antiguo Ruc.</b><br/></small>

<small>-</small>
<br/>
<small><b>Estado.</b>ACTIVO</small><br/>

<small><strong>Agente Retenci&#xF3;n IGV.</strong>

<strong>NO</strong> -
<br/>
</small>
<small><b>Nombre Comercial.</b><br/>- </small><br/>
<small><b>Direcci&#xF3;n.</b><br/>PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP </small><br/>
<small>Situaci&#xF3;n.<b> HABIDO</b></small><br/>
<small><b>Tel&#xE9;fono(s).</b><br/>-</small><br/>
<small><b>Dependencia.</b><br/> asdasdasd/small><br/>
<small><b>Tipo.</b><br/> asdasdasdasd</small><br/>


<small><b>DNI</b> : asdasdas</small><br/>
<small><b>Fecha Nacimiento.</b> asdasdas</small><br/>

<!--
<small><b>Inicio Act.</b><br/>0173</small><br/>
<small><b>Act. Econ&#xF3;mica. </b> asdasd</small><br/>
-->
</p>
</card>
</wml>
alguien me podria ayudar

Etiquetas: simple, xml
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 16:45.