Foros del Web » Programando para Internet » PHP »

Tratar documento XML mediante PHP

Estas en el tema de Tratar documento XML mediante PHP en el foro de PHP en Foros del Web. Hola! Quiero hacer una web mediante PHP en la que introduzca un documento XML y lo transforme a un diagrama de flujo en formato svg ...
  #1 (permalink)  
Antiguo 11/10/2010, 02:46
 
Fecha de Ingreso: enero-2009
Mensajes: 45
Antigüedad: 15 años, 10 meses
Puntos: 0
Tratar documento XML mediante PHP

Hola!

Quiero hacer una web mediante PHP en la que introduzca un documento XML y lo transforme a un diagrama de flujo en formato svg y que pueda guardar en el ordenador esa imagen. Los pasos básicos serían:

1- Cargar el archivo en el server y que compruebe que es un archivo valido (es decir con extension XML)
2- Una vez cargado seleccionar todos las etiquetas <procedure> del documento y enseñarlos por pantalla mediante una lista.
3- Seleccionar uno de estos procedimientos para imprimir en pantalla.
4- Mediante XSLT (ya tengo hecho el script) transformaria ese procedimiento a formato .dot y a su vez mediante graphviz crearia el grafico en formato svg.
5- Mostrar el grafico por pantalla
6- Dar la posibilidad de guardar el grafico



Alguien me podria echar una mano sobre todo con los pasos que tengo que ir dando al principio que ando un poco verde en PHP.


Un saludo y gracias!
  #2 (permalink)  
Antiguo 11/10/2010, 05:21
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Tratar documento XML mediante PHP

Lo primero es parsear el archivo XML, para esto necesitas un parser o al menos uno genérico. Te recomiendo que hagas el tuyo propio.
A partir de aquí hay que ver tu código. Sobre cómo vas a sacar esto por pantalla depende de lo claro que tengas la estructura XML.
Una procesado ya puedes generar la imagen o bien un pdf.
Son unos cuantos pasos, te recomiendo que empieces por controlar el tema parseo. Salu2
  #3 (permalink)  
Antiguo 11/10/2010, 05:25
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Tratar documento XML mediante PHP

el formato svg es un fichero XML, así que con xslt bastaría (al menos para hacer el archivo), para convertirlo a imagen png/bmp usarías algo como svg2png:http://www.phpclasses.org/package/53...PNG-image.html
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 11/10/2010, 08:34
 
Fecha de Ingreso: enero-2009
Mensajes: 45
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Tratar documento XML mediante PHP

Muchas gracias a ambos. Al hacer el parser para obtener los nombres de todos los procedures, por ejemplo <procedure name="proc1">, hago esto:

$xmlDoc = new DOMDocument();
$xmlDoc->load("$name");
$listproc = $xmlDoc->getElementsByTagName("procedure").getAttribute("n ame");


Donde $name es el nombre del archivo xml a parsear.

El error que me da es este:

Fatal error: Call to undefined function getAttribute() in C:\xampp\htdocs\index.php on line 28


A qué es debido?

Un saludo!

P.D. Aunque el getAttribute("name") aqui en el foro name se ve separado, en el script lo tengo junto, por lo que eso no es el problema. ;)
  #5 (permalink)  
Antiguo 11/10/2010, 08:59
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Tratar documento XML mediante PHP

Estás llamando a una función que no existe:

Código PHP:
$listproc $xmlDoc->getElementsByTagName("procedure").getAttribute("n ame"); 
getAttribute("n ame") no existe o no pertenece al objeto getElementsByTagName("procedure").
  #6 (permalink)  
Antiguo 11/10/2010, 09:14
 
Fecha de Ingreso: enero-2009
Mensajes: 45
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Tratar documento XML mediante PHP

Cita:
Iniciado por repara2 Ver Mensaje
Estás llamando a una función que no existe:

Código PHP:
$listproc $xmlDoc->getElementsByTagName("procedure").getAttribute("n ame"); 
getAttribute("n ame") no existe o no pertenece al objeto getElementsByTagName("procedure").
name si que existe. Es el atributo del elemento procedure.


Como habría que hacer para obtener los atributos de tipo name de todos los elementos de tipo procedure del documento?

Aqui un ejemplo de una parte del documento xml:

Código:
<procedures>
		<procedure name="test" >
                </procedure>
		<procedure name="test2" >
                </procedure>
</procedures>
  #7 (permalink)  
Antiguo 12/10/2010, 02:27
 
Fecha de Ingreso: enero-2009
Mensajes: 45
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Tratar documento XML mediante PHP

se pueden concatenar el getElementByTagName con el getAttribute??

Etiquetas: documento, 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 12:14.