Foros del Web » Programando para Internet » PHP »

Php-xml

Estas en el tema de Php-xml en el foro de PHP en Foros del Web. Ante todo muy buenas tardes, noches, dias... estoy teniendo problemas con php cuando quiero abrir un archivo xml, usando DOM, lo hago a travez de ...
  #1 (permalink)  
Antiguo 21/12/2010, 23:11
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Exclamación Php-xml

Ante todo muy buenas tardes, noches, dias...
estoy teniendo problemas con php cuando quiero abrir un archivo xml, usando DOM, lo hago a travez de la siguiente sentencia....

$xml= new DOMdocument('1.0','utf-8');
$xml-> loadxml("videos2.xml");
el videos2.xml tiene la siguiente forma:



<?xml version="1.0" encoding="utf-8"?>
<list origin="youtube" date="2010-12-17">
<item>
<title>Gran Hermano 2011 - Rocio bañandose por la mañana!</title>
<refer>http://www.youtube.com/watch?v=EXUyq9qI-ZU</refer>
<rate>9,030</rate>
<description> id="eow-category"><a href="/vlcs?c=24">Entertainment</a></description>
<category>Entertainment</category>
<vlc>http://v19.lscache5.c.youtube.com/vlcplayback?ip=186.0.0.0&sparams=id%2Cexpire%2Cip% 2Cipbits%2Citag%2Calgorithm%2Cburst%2Cfactor&algor ithm=throttle-factor&itag=18&ipbits=8&burst=40&sver=3&expire=129 2630400&key=yt1&signature=B824F712EC5EC2D8424CF0A0 B067AF6D75215A3C.D19354F2E12C8B6EE05AECAEE2A7D8347 934EC2F&factor=1.25&id=117532abda88f995</vlc>
</item>
<item>
</list>






A LO CUAL EL EXPLORADOR ME RESPONDE CON EL SIGUIENTE ERROR:

Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Start tag expected, '<' not found in Entity, line: 1 in C:\xampp\htdocs\index.php on line 36

YA NO SE MAS QUE HACER SI ALGUIEN ME PUEDE AYUDA SE LO AGRADECERÍA!!!
MUCHAS GRACIAS
  #2 (permalink)  
Antiguo 22/12/2010, 06:47
 
Fecha de Ingreso: diciembre-2010
Mensajes: 32
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Php-xml

alanfcarta, que hay en la línea 36?
  #3 (permalink)  
Antiguo 22/12/2010, 08:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Php-xml

El problema es más bien que el primer caracter del string no es <?xml, tal vez tengas algún espacio en blanco. Trata que el primer caracter sea <?xml
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 22/12/2010, 11:11
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

Cita:
Iniciado por delrdlp Ver Mensaje
alanfcarta, que hay en la línea 36?
en la linea 36 esta la parte de php donde declaro el documento DOM, son las dos sentencias que puse, la 36 seria la primera de ellas
  #5 (permalink)  
Antiguo 22/12/2010, 11:12
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

Cita:
Iniciado por abimaelrc Ver Mensaje
El problema es más bien que el primer caracter del string no es <?xml, tal vez tengas algún espacio en blanco. Trata que el primer caracter sea <?xml
Lo acabo de revisar y no hay espacios... empieza tal cual lo puse arriba....
  #6 (permalink)  
Antiguo 22/12/2010, 11:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Php-xml

Te recomiendo usar simplexml de php. Al menos te aseguras que funciona.
  #7 (permalink)  
Antiguo 22/12/2010, 11:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Php-xml

Si grabaste el archivo como utf8, verifica esta informacion a ver si te ayuda http://forosdelweb.com/wiki/PHP:¿Por...dy_sent%3F
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 22/12/2010, 12:15
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

acabo de intentar leerlo ahora como un txt, y lee solamente la parte que se encuentra dentro de refer y category(lo genere de nuevo, y lo guarde como un txt desde el crawler que esta echo en python)... me esta volviendo loco esto


$archivo=fopen("videos.txt","r");
$leer=fread($archivo,filesize("videos.txt"));
echo($leer);

a lo que en el explorador sale:


http://www.youtube.com/watch?v=EXUyq9qI-ZU 9,030 id="eow-category">Entertainment Entertainment http://www.youtube.com/watch?v=Z3FZOl3XxHA 11,124 id="eow-category">News & Politics News & Politics http://www.youtube.com/watch?v=YkNXk1-xQSc 13,436 id="eow-category">Sports Sports http://www.youtube.com/watch?v=2Q2h9JMxAUU 5,046 id="eow-category">People & Blogs People & Blogs.

no sale ninguno de los otros tags!! :S
  #9 (permalink)  
Antiguo 22/12/2010, 12:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Php-xml

Claro, no lo está tomando como xml, solo como texto plano.

Te repito, intenta con simplexml de php, es muuuuuuy facil de usar y por lo menos a mi, siempre ha funcionado bien.
  #10 (permalink)  
Antiguo 22/12/2010, 12:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

Cita:
Iniciado por walterdevel Ver Mensaje
Claro, no lo está tomando como xml, solo como texto plano.

Te repito, intenta con simplexml de php, es muuuuuuy facil de usar y por lo menos a mi, siempre ha funcionado bien.
ok ahora me fijo, lo voy a googlear a ver como se usa. muchas gracias. si sabes de algún tutorial copado avisa.

muchas gracias
  #11 (permalink)  
Antiguo 22/12/2010, 12:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Php-xml

Cita:
Iniciado por alanfcarta Ver Mensaje
ok ahora me fijo, lo voy a googlear a ver como se usa. muchas gracias. si sabes de algún tutorial copado avisa.

muchas gracias
Probá con algo así:

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

Obviamente cambialo por tus campos o simplemente haces:

Código PHP:
print_r($noticias); 

También podés ver la web de php ( oficial ):

http://php.net/manual/es/book.simplexml.php
  #12 (permalink)  
Antiguo 22/12/2010, 12:58
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

Warning: simplexml_load_file() [function.simplexml-load-file]: videos2.xml:9: parser error : EntityRef: expecting ';' in C:\xampp\htdocs\index.php on line 37

Warning: simplexml_load_file() [function.simplexml-load-file]: <vlc>http://v19.lscache5.c.youtube.com/vlcplayback?ip=186.0.0.0&sparams=id%2Ce in C:\xampp\htdocs\index.php on line 37

Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in C:\xampp\htdocs\index.php on line 37

7

me tira toda esa bandada de errores ahora... jaja por lo menos es algo...
puse lo siguiente:

$xml= simplexml_load_file("videos2.xml");
echo($xml);
  #13 (permalink)  
Antiguo 22/12/2010, 13:11
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Php-xml

Si puedes manejar el xml, intenta que el contenido que está dentro de los tags de xml, aplicarle htmlentities() , creería que ese es el problema.
  #14 (permalink)  
Antiguo 22/12/2010, 13:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

si el xml lo puedo manejar.. como se usaría htmlentities()...? es mi primera experiencia con php y estoy dándome con toda pared que encuentro.
  #15 (permalink)  
Antiguo 22/12/2010, 13:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Php-xml

Cita:
Iniciado por alanfcarta Ver Mensaje
si el xml lo puedo manejar.. como se usaría htmlentities()...? es mi primera experiencia con php y estoy dándome con toda pared que encuentro.
Ej:

Código PHP:
$titulo = "Gran Hermano 2011 - Rocio bañandose por la mañana!";

$xml = '<?xml version="1.0" encoding="utf-8"?>
<list origin="youtube" date="2010-12-17">
<item>
<title>'.htmlentities($titulo).'</title>';
y así para todos los contenidos que agregás vos.
  #16 (permalink)  
Antiguo 22/12/2010, 13:38
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

claro... pero el crawler que me genera el xml lo tengo hecho en python...
  #17 (permalink)  
Antiguo 22/12/2010, 13:50
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Php-xml

Cita:
Iniciado por alanfcarta Ver Mensaje
claro... pero el crawler que me genera el xml lo tengo hecho en python...
Uffffffff, ya ahí estás complicado...

Otra forma sería usar expresiones regulares, siempre y cuando el formato del xml sea siempre el mismo, por ejemplo:
Código PHP:
$xml file_get_contents("mixml.xml");

preg_match('/<title>(.*)<\/title>/'$xml$resultado);
$title $resultado[1]; (o deberías hacer un print_r($resultado); para ver donde te deja el valor
y así con cada etiqueta...
  #18 (permalink)  
Antiguo 22/12/2010, 21:14
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

Cita:
Iniciado por walterdevel Ver Mensaje
Uffffffff, ya ahí estás complicado...

Otra forma sería usar expresiones regulares, siempre y cuando el formato del xml sea siempre el mismo, por ejemplo:
Código PHP:
$xml file_get_contents("mixml.xml");

preg_match('/<title>(.*)<\/title>/'$xml$resultado);
$title $resultado[1]; (o deberías hacer un print_r($resultado); para ver donde te deja el valor
y así con cada etiqueta...
claro eso quise hacer, leo el txt... y cuando lo imprimo nunca me muestra el xml completo solo loque esta dentro de refer y category...
  #19 (permalink)  
Antiguo 22/12/2010, 21:26
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

bien ahi lo hice funcionar... gracias, pero con el preg_match_all() que es lo que nesesito, me cuando lo imprimo alguno de los indices me devuelve: array

y ningun titulo


<?php
$xml = file_get_contents("videosw.xml");

preg_match_all('/<title>(.*)<\/title>/', $xml, $resultado);
$title = $resultado[0];
echo($resultado);
?>
  #20 (permalink)  
Antiguo 22/12/2010, 21:41
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

ya lo solucione!!! Muchas gracias a todos!!!!, prometo volver con mas dudas! Jaja, en serio muchÍsimas gracias
  #21 (permalink)  
Antiguo 23/12/2010, 22:28
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

PrometÍ que iba a volver con mas dudas y acÁ estoy, necesito pasar parÁmetros entre dos paginas.
Bien ya se como enviarlos.. Pero nose como recuperarlos en la otra....
  #22 (permalink)  
Antiguo 23/12/2010, 23:47
(Desactivado)
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 471
Antigüedad: 18 años, 11 meses
Puntos: 45
Respuesta: Php-xml

Cita:
Iniciado por alanfcarta Ver Mensaje
ya lo solucione!!! Muchas gracias a todos!!!!, prometo volver con mas dudas! Jaja, en serio muchÍsimas gracias
Pero alanfcarta, dinos como lo solucionaste, así ayudarás a otros que tengan tu mismo problema.
  #23 (permalink)  
Antiguo 26/12/2010, 13:21
 
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Php-xml

Cita:
Iniciado por Rolldi Ver Mensaje
Pero alanfcarta, dinos como lo solucionaste, así ayudarás a otros que tengan tu mismo problema.
simplemente con su ayuda.... $xml= new DOMdocument('1.0','utf-8');
$xml-> loadxml("videos2.xml"); eso me salvo la vida, tuve que cambiar la codificacion a una de las iso lo unico... por la forma en que guardaba el documento.
  #24 (permalink)  
Antiguo 27/12/2010, 09:35
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Php-xml

Cita:
Iniciado por alanfcarta Ver Mensaje
PrometÍ que iba a volver con mas dudas y acÁ estoy, necesito pasar parÁmetros entre dos paginas.
Bien ya se como enviarlos.. Pero nose como recuperarlos en la otra....
Si enviaste por get, $variable = $_GET['parametro'];

Si es por post, $variable = $_POST['parametro'];

Etiquetas: Ninguno
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 11:36.