Foros del Web » Programando para Internet » PHP »

Crear xml dinámicamente

Estas en el tema de Crear xml dinámicamente en el foro de PHP en Foros del Web. Buenas, Necesitaría saber como se genera dinámicamente un xml con php. Vamos que desde un archivo php se genere en el mismo un xml. Se ...
  #1 (permalink)  
Antiguo 02/08/2004, 07:14
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Exclamación Crear xml dinámicamente

Buenas,

Necesitaría saber como se genera dinámicamente un xml con php.
Vamos que desde un archivo php se genere en el mismo un xml.
Se que en ASP es posible mediante:

Set oxml = Server.CreateObject("Microsoft.XMLDOM")
Set objarticulos = oxml.createElement("articulos")
...

He probado ha hacerlo a lo cutrecillo imprimiendo por pantalla el xml tipo:
print "<Referencia>$row[Referencia]</Referencia>";
Pero no ha funcionado, también he probado creando desde php el fichero xml y así si funciona pero quiero que se haga automático.

Alguna idea?

Muchas gracias!
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #2 (permalink)  
Antiguo 02/08/2004, 08:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Puedes ver alguna classe que te ayude para tal fin. Tanto para "parsear" un formato XML (con detección de nudos y demás ...) como para generarlo desde una consulta SQL a tu BD.

En: www.phpclasses.org (sección XML o Base de datos) encontraras.

Un saludo,
  #3 (permalink)  
Antiguo 02/08/2004, 10:02
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
He estado mirando la web que me pasaste Cluster y entre que he encontrado un montón de parsers de xml, que esta en inglés y que nunca he usado clases de php (Bueno, solo mías). No se ni por donde cogerlo.
Puedes orientarme un poco más, por favor?
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #4 (permalink)  
Antiguo 02/08/2004, 11:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En tu caso concreto no se trata de "parsear" sino de generar el própio XML.

Las classes tan sólo se usan como su documentación/ejemplos describa .. no tienen nada de especial. (y si tu has programado una classe en PHP .. deberías de sobra saber usar una ya creada; me refiero a saber que hay que instanciar la classe y luego usar sólo sus métodos que lo que hagan o devuelvan y parámetros que requieran lo debe describir la documentación).

Si estás usando Mysql ... y quieres generar un XML con la estructura del "record-set" que obtienes .. puedes usar:

http://www.phpclasses.org/browse/package/782.html

Tiene buena pinta (no la he usado) .. Tiene ejemplos de uso.

Luego, también tienes un buen montón que transforman Array's en XML (según tu estructura de tu array) ... En fin, decidete por una en concreto . .intenta leer su documentación/probar sus ejemplos y con dudas concretas podrías publicar aquí en este mensaje el código que uses para ver que problema puedas tener.

Un saludo,
  #5 (permalink)  
Antiguo 03/08/2004, 05:16
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Nada, que no hay manera...
No será por no buscar cosas...
El caso es que con lo de las clases me hago un lio y no llego a ningun sitio, no se puede sacar de otra manera?

Siento ser tan pesada, pero es importante y me veo incapaz

P.D: Con tanta búsqueda he encontrado algo que no se si puede ser una solución, a ver q me comentais.

Código:
short_open_tag boolean
Indica si se permite el uso de la forma corta (<? ?>) de la etiqueta de apertura de PHP. Si desea usar PHP en conjunto con XML, puede deshabilitar esta opción, de modo que pueda usar <?xml ?> en forma directa. De otro modo, puede imprimir esta cadena con PHP, por ejemplo: <?php echo '<?xml version="1.0"'; ?>. Asimismo, si el parámetro está deshabilitado, debe usar la forma larga de la etiqueta de apertura de PHP (<?php ?>).
Perooo... hay un problema, q tengo varias webs hechas en el servidor con la forma corta de php, si lo cambio en el ini y afecta a las demás webs sería un jaleo enorme, peor el remedio q la enfermedad... Um... No se puede hacer nada para que se realice ese cambio mientras dure mi script....

__________________
Ibisof | Saludos desde Eivissa !!! :p

Última edición por Enea; 03/08/2004 a las 06:29
  #6 (permalink)  
Antiguo 03/08/2004, 08:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La mayoría de configuración de PHP se puede ajustar para que dure sólo el tiempo de ejecución de un script en concreto usando:

ini_set()
www.php.net/ini_set

pero verifica si esa directiva en concreto se podría ajustar así.

Con respecto a lo otro .. deberías aprender a -usar- (no digo "programar en OOP") al menos classes, la mayoría de grandes utilidades (enviar e-mail, generar XML/parsear . usar capas de abstracción de BD o de templates .. etc) son "classes".

Un saludo,
  #7 (permalink)  
Antiguo 03/08/2004, 11:42
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 14 años, 5 meses
Puntos: 0
Sonrisa Solucionado!

POR FIN LO CONSEGUÍ !!!!!

Era mucho más facil de lo que pensaba, ahí va la solución a mi problema, por si alguien se lía como yo.

No era más que poner arriba del todo

header ("Content-type:text/xml");

Y la salida ya te la interpreta como xml...

Lo de las classes es un asunto pendiente, a ver si puedo terminar esta web y me pondré a estudiarlo. Buscaba alguna solución rápida porque voy mal de tiempo... Pero prometido que me estudiaré la lección

Muchas gracias por todo!
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #8 (permalink)  
Antiguo 03/08/2004, 20:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Que bueno ..

A mi no me quedó nunca claro que lo que querías era generar ese XML directamente .. por qué es bien distinto crear ese .xml como archivo que generarlo y entregarlo al cliente directamente que es lo que haces cuando le indicas por médio de esa cabecer HTTP que "los datos que vas a enviar son en formato XML" ... (He de ahí el tremendo lio ).

Un saludo,
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:17.