Foros del Web » Programando para Internet » PHP »

PHP OO php5 + xml

Estas en el tema de php5 + xml en el foro de PHP en Foros del Web. hola, tengo problemas con este codigo en xampp sobre ubuntu:4 @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php $string = <<<XML <?xml version='1.0'?> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" ...
  #1 (permalink)  
Antiguo 31/01/2017, 07:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 299
Antigüedad: 17 años
Puntos: 2
Pregunta php5 + xml

hola,
tengo problemas con este codigo en xampp sobre ubuntu:4

Código PHP:
Ver original
  1. <?php
  2. $string = <<<XML
  3. <?xml version='1.0'?>
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5. <head>
  6. <title>XML Example</title>
  7. </head>
  8. <body background="bg.png">
  9. <p>
  10. Moved to <a href="http://example.org/">example.org<a>.
  11. </p>
  12. <pre>
  13. foo
  14. </pre>
  15. <p>
  16. Moved to <a href="http://example.org/">example.org</a>.
  17. </p>
  18. </body>
  19. </html>
  20. XML;
  21. $sx2 = simplexml_load_string($string);
  22. ?>
  23. <h1>pàrrafos:</h1>
  24. <?php
  25. foreach ($sx2->body->p as $p)
  26.     echo utf8_decode( $p )."<br/>" ;
  27. ?>

este es el error que obtengo al ejecutarlo:

¿alguien me puede orientar sobre el problema?
__________________
1os pasaos con xAMP en Windows
programando en PERL

Última edición por alfa18; 31/01/2017 a las 07:47
  #2 (permalink)  
Antiguo 31/01/2017, 08:24
Avatar de senseeye3led  
Fecha de Ingreso: abril-2016
Ubicación: 127.0.0.1
Mensajes: 163
Antigüedad: 8 años, 8 meses
Puntos: 11
Respuesta: php5 + xml

Tal vez te pueda ayudar:
https://stackoverflow.com/questions/...-required-file
Sería interesante comprobar lo siguiente:
1) ¿Existen los ficheros? (Atención si la ruta/path es correcta)
2) ¿El usuario que ejecuta PHP tiene permisos sobre estos ficheros?

Salu2
  #3 (permalink)  
Antiguo 31/01/2017, 10:20
 
Fecha de Ingreso: diciembre-2007
Mensajes: 299
Antigüedad: 17 años
Puntos: 2
Respuesta: php5 + xml

Cita:
Iniciado por senseeye3led Ver Mensaje
Tal vez te pueda ayudar:
https://stackoverflow.com/questions/...-required-file
Sería interesante comprobar lo siguiente:
1) ¿Existen los ficheros? (Atención si la ruta/path es correcta)
2) ¿El usuario que ejecuta PHP tiene permisos sobre estos ficheros?

Salu2
En efecto esos dos eran los problemas, los he arreglado y se ejecuta el fichero PHP(con otros errores).

1) he añadido al final de ~/.bashrc la linea PATH=$PATH;/opt/lampp/lib/php para que modifique el path de forma premanente al iniciar sesion

2)los permisos del fichero XML son de lectura para todos ¿Como puedo saber el usuario que ejecuta PHP?
__________________
1os pasaos con xAMP en Windows
programando en PERL
  #4 (permalink)  
Antiguo 31/01/2017, 10:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 299
Antigüedad: 17 años
Puntos: 2
Respuesta: php5 + xml

Estos son los nuevos errores que me aparecen al ejecutar el fichero, ¿alguien sabe a que se deben?

Warning: simplexml_load_string(): Entity: line 9: parser error : Opening and ending tag mismatch: a line 8 and p in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): </p> in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): ^ in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): Entity: line 16: parser error : Opening and ending tag mismatch: a line 8 and body in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): </body> in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): ^ in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): Entity: line 17: parser error : Opening and ending tag mismatch: p line 7 and html in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): </html> in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): ^ in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): Entity: line 17: parser error : Premature end of data in tag body line 6 in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): </html> in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): ^ in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): Entity: line 17: parser error : Premature end of data in tag html line 2 in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): </html> in /opt/lampp/htdocs/xemele.php on line 21

Warning: simplexml_load_string(): ^ in /opt/lampp/htdocs/xemele.php on line 21

La solución es usar entidades númericas(XML no admite entidades con nombre, &lt;)
__________________
1os pasaos con xAMP en Windows
programando en PERL

Última edición por alfa18; 31/01/2017 a las 11:18
  #5 (permalink)  
Antiguo 31/01/2017, 20:21
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: php5 + xml

No estás cerrando correctamente las etiquetas:

Moved to <a href="http://example.org/">example.org<a>.

Moved to <a href="http://example.org/">example.org</a>.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 01/02/2017, 08:36
 
Fecha de Ingreso: diciembre-2007
Mensajes: 299
Antigüedad: 17 años
Puntos: 2
Respuesta: php5 + xml

Cita:
Iniciado por Triby Ver Mensaje
No estás cerrando correctamente las etiquetas:

Moved to <a href="http://example.org/">example.org<a>.
Lo dices por el primer párrafo, ¿verdad?(<a> en lugar de </a>)Lo se, en mi defensa dire que lo cogi de un ejemplo de un libro, "yo no fui"

Ahora tengo un nuevo "reto", consultas XPath ¿Por que no obtengo nada al ecutar este codigo?¿Estan bien aplicadas las consultas en este ejemplo?

Código PHP:
Ver original
  1. <?php
  2. $string = <<<XML
  3. <?xml version='1.0'?>
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5. <head>
  6. <title>XML Example</title>
  7. </head>
  8. <body background="bg.png"> // line 8
  9. <p>
  10. Moved to <a href="http://example.org/">example.org</a>.
  11. </p>
  12. <pre>
  13. foo
  14. </pre>
  15. <p>
  16. Moved to <a href="http://example.org/">example.org</a>.
  17. </p>
  18. </body>
  19. </html>
  20. XML;
  21. $sx2 = simplexml_load_string($string); // line 21
  22. ?>
  23. <h1>párrafos:</h1>
  24. <?php
  25. $lista=$sx2->body->xpath("p");
  26. foreach ($lista as $p)
  27.     echo utf8_decode( $p )."<br/>" ;
  28. ?>
__________________
1os pasaos con xAMP en Windows
programando en PERL
  #7 (permalink)  
Antiguo 01/02/2017, 19:39
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: php5 + xml

La línea 8 no se refiere al código PHP, sino al contenido de tu xml y menciona el error que te mostré anteriormente: no estás cerrando correctamente la etiqueta del enlace.

Todos los errores (advertencias) de PHP muestran que se producen en la línea 21, porque tienes un XML MAL FORMADO. Lo que me extraña es que continué mostrándote los mismos mensajes si, en teoría, ya corregiste las etiquetas.
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 02/02/2017, 05:41
 
Fecha de Ingreso: diciembre-2007
Mensajes: 299
Antigüedad: 17 años
Puntos: 2
Respuesta: php5 + xml

como digo en mi anterior post, esos errores ya los solucione., ahora no me devuelve nada(ni mensajes de error¡¡¡),¿que estoy haciendo mal?

El documento XML esta bien formado, las etiquetas intermedias(<a>) son en relidad entidades numericas("&060;") que en el post se muestran como "<"

mi duda ahora esta en cuanto al metodo xpath, ¿lo estoy usando bien?
__________________
1os pasaos con xAMP en Windows
programando en PERL

Última edición por alfa18; 02/02/2017 a las 06:55

Etiquetas: html, php5, 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




La zona horaria es GMT -6. Ahora son las 22:14.