Programación Web y Scripting > PHP
Generar Xml Desde Php
sherryl:
Hola...
Estoy tratando de generar una galeria de imágenes por cada cierta noticia, para esto utilizo un script que reescribe el flash...lo que quisiera es generar el xml genéricamente por cada noticia. Para lo cual almaceno en una variable el archivo xml.. algo así:
$archivoXML = "<?xml version='1.0' encoding='UTF-8'?>
<gallery base = '' background = '#FFFFFF' banner = '#285E8C' text = '#6E6E6E' link = '#018888' alink = '#FFFFFF' vlink = '#3ED0D0' date = ''>
<sitename></sitename>
<photographer></photographer>
<contactinfo></contactinfo>
<email></email>
<security><![CDATA[]]> </security>
<banner font = 'Helvetica' fontsize = '3' color = '#285E8C'> </banner>
<thumbnail base ='galerias/thumbnails/' font = 'Helvetica' fontsize = '4' color = '#285E8C' border = '0' rows = '3' col = '5'> </thumbnail>
<large base ='galerias/images/' font = 'Helvetica' fontsize = '3' color = '#285E8C' border = '0'> </large>
<images id = 'images'>"....;
luego genero un ciclo para generar los nombres, anchos y demás características propias de las imágenes de cada noticia, las cuales son léidas desde la base de datos...y se concateno a esta variable.
El problema aparece cuando trato de generar el xml
es decir cuando hago
$XML = domxml_open_mem($archivoXML);
aquí ya me aparece un error..he mirardo mi php el cual es versión 5 y esta librería no se encuentra en comentario.
También he tratado de generar documentos XML, usando:
$documento = new DOMDocument();
$documento ->loadXML($archivoXML);
para lo cual pongo la siguiente clase
class DOMDocument
{
bool loadXML(string source[,int options])
}
pero solo con esta ya aparece error..No sé si esto no se pueda hacer y esté jugando con cosas que ya están hechas y estoy mal enfocada.- Agradezco asesoría de como generar el xml dinámicamente para efectos del administrador de las noticias porq cuand se genera el xml estáticamente funciona a las mil maravillas, pero es engorroso para usuarios básicos de internet...Tampoco sé si me hace falta algun archivo que deba incluir en fin... agradezco la ayuda..
Gracias, lamento la extensión de esta discusión..
Altareum:
Hola Sherryl:
Mira, por un lado las funciones DOM XML, no son compatibles en php5 (o bien funcionan mal, depende de la versión) , por lo cual debes usar las funciones DOM (en tu ejemplo, es el segundo caso).
Por otro lado, el manejo del formato XML tanto con php como con javascript hace doler la cabeza hasta que le agarras la mano. Los parsers no están aún bien hecho, por lo cual algo que está bien, suele dar error. Te recomiendo que te armes de paciencia y vayas agregando nodos de a poco. Para empezar te recomendaría sacar el CDATA.
Igualmente es raro que el parser no te de ningún tipo de error, tal vez considere que el xml no está bien formado.
Lamentablemente no tengo php5 instalado en el trabajo y no puedo probar tu código para decirte donde falla.
Por último, si ves que le encuentras la vuelta, intenta con el proceso inverso, crea el XML con las funciones de php, agregando nodo por nodo, y luego exportarlo a xml, y usa ese resultado en tu código, en este caso es 100% seguro de que dicho resultado te sirva.
Saludos.
Altareum.
sherryl:
Mil Gracias..-
Me gustan los retos y este es uno pequeño, ahora bien, de xml creo tener conocimmientos muy básicos, no se que etiquetas se puedan usar para invocar o incrustar php. Podrías enviarme algún link o tutorial de como construir el archivo xml con php, ya que debo leer las características de la galería con php..o darme algun ejemplo de como impletarlo??
Nuevamente Gracias..
sherryl:
Hola de nuevo Altareum.
Traté de probar lo que me recomendaste de ir anidando los nodos poco a poco pero igual me da error, es como si no reconociera ninguna etiqueta xml desde php. Esto fue lo que hice...
<?php
class DOMDocument
{
bool loadXML(string source[,int options])
}
$inicial = "<?xml version='1.0' encoding='UTF-8'?>";
$documento = new DOMDocument();
$documento ->loadXML($inicial);
echo $documento->saveXML();
?>
y el error es:
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in ......... noticia.php on line 146
Como si no reconciera nada de lo que hay dentro de la cadena, no sé si me falta incluir alguna clase o algo asi... ó tal vez hay que jugar con las comillas " " ó ' ' .. en fin..
Mil gracias de antemano...
Altareum:
sherryl, sólo por curiosidad intenta poner esta línea así:
$inicial = "<"."?xml version='1.0' encoding='UTF-8'?>";
Recuerda que los scripts de php pueden iniciarse con <?php y <?, aunque si bien depende de la configuración del php.ini, la mayoría de las veces el intérprete de php identifica el inicio de un xml (<?) cómo el inicio de un php.
Altareum.
Navegación
[#] Página Siguiente
Ir a la versión completa