Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda transformar XML a HTML...

Estas en el tema de Ayuda transformar XML a HTML... en el foro de Programación General en Foros del Web. Necesito transformar ese cogigo XML en HTML. El problema es k he comenzado hace nada a programar en HTML y ya me estan pidiendo eso ...
  #1 (permalink)  
Antiguo 15/01/2004, 07:04
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 20 años, 10 meses
Puntos: 0
Pregunta Ayuda transformar XML a HTML...

Necesito transformar ese cogigo XML en HTML.
El problema es k he comenzado hace nada a programar en HTML y ya me estan pidiendo eso y la verdad es que no me aclaro mucho.
He mirado tutoriales en red pero no me aclaran practicamente nada xq dan muchas cosas por sabidas (cosas k aun no domino o que ni tan siquiera he visto aun). A ver si alguien me puede oriental un poco que estoy bastante perdido

En concreto mis dudas son, para enpezar xq seguro k me surgiran mas jejeje:

1) Para que sirve y como se utiliza lo de "apply templates"
2) Me han pedido que en lugar de DTD utilice esquemas...El problema es k no entiendo bien su utilización

Como veis mi nivel es muy nulo , asi que cualquier ayuda por pequeña que sea me ira bien.

Gracias de antemano...Salu2!!
  #2 (permalink)  
Antiguo 15/01/2004, 08:01
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
1. Dices que tampoco sabes HTML ? o en realidad con lo que empiezas es con XML?

2. Para pasar un XML a HTML en el fondo lo que necesitas saber es que consiste un XML y conocer XSL (HTML también).

Entonces partes de 2 archivos: archivo.xml y archivo.xsl.

El archivo.xsl es el que se encargará de convertir tu archivo.xml en html. Dentro de archivo.xml, al principio, colocarás una línea en la que referenciarás el archivo.xsl que te lo transformará en html. Esta línea es del tipo

Código PHP:
<?xml-stylesheet type="text/xsl" href="archivo.xsl"?>
Este archivo.xsl será el encargado de leer los contenidos de cada una de las etiquetas xml que te interesen de tu archivo.xml e irá dándole formato a esos contenidos con etiquetas html.

Yo comencé a aprender todo esto desde la web w3schools. Los tutoriales se centran en lo básico para crear simples ejemplos y al menos entender como funciona todo esto.

Para empezar te bastará con hacer completamente los tutoriales referenciados por los links "Learn XML" y "Learn XSL". Es lo básico que necesitas para hacer lo que quieres (también necesitarás HTML pero no dejas claro si sabes de esto ya o no)

Prueba y me cuentas

Suerte
  #3 (permalink)  
Antiguo 16/01/2004, 03:46
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 20 años, 10 meses
Puntos: 0
Tu explicacion es un buen punto de partida...

La verdad es k tengo nociones muy básicas de HTML, supongo k por eso tmbn me cuesta entender todo esto.
Estoy estudiandome los cursos de 2w3schools" y tienen muy buena pinta.
Me podre las pilas con los consejos me has dado,a ver k tal me va y si tengo mas dudas ya ire preguntando por aqui, si no te importa...

Gracias!!
  #4 (permalink)  
Antiguo 16/01/2004, 03:51
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
De ná

Un beso
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #5 (permalink)  
Antiguo 19/01/2004, 06:23
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 20 años, 10 meses
Puntos: 0
Wenas!

Ya me voy aclarando un poco mas y hasta soy capaz (increible...) de tranformar un ejemplo sencillo de XML a html
Uno de los problemas q tengo ahora es cuando el XML que me pasan contiene las informacion como ATRIBUTOS y no como elementos...no se si me explico...

ej) <aplicacion nombre="UNO" descripcion="DESCRIPCION 1" hits="1440" media="60" />

Para mostrar UNO,DESCRPCON1,1440,60... Como podria hacerlo. O tendria que modificar el codigo XML y poner como elementos lo q ahora tengo como atributos (cosa q de todas formas no podria hacer...)

Gracias!
  #6 (permalink)  
Antiguo 19/01/2004, 06:57
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Hola teppa.

Me alegro que te vayas aclarando.

Como hacer referencia a los atributos de un elemento, si sigues las guias esas que te pasé de www.w3schools.com, concretamente la de XSLT Tutorial, te lo explica claramente cuando mención de @nombre_atributo .

No obstante, la forma de referenciar elementos/atributos lo explica profundizando mucho mas en el tutorial de esa misma pagina con nombre XPAth.

suerte!!

Un beso
  #7 (permalink)  
Antiguo 20/01/2004, 06:49
 
Fecha de Ingreso: enero-2004
Mensajes: 1
Antigüedad: 20 años, 10 meses
Puntos: 0
Me pase dándole a lo de enviar respuesta... (como no me hacia caso... )
A ver si me sigo aclarando...
Saludos!
  #8 (permalink)  
Antiguo 20/01/2004, 07:06
 
Fecha de Ingreso: enero-2004
Mensajes: 11
Antigüedad: 20 años, 10 meses
Puntos: 0
Muy buenas.

La verdad es que tanto a teppa como a mi nos vino muy bien la pagina de tutoriales que nos diste y ya somos casi gurus de xsl jejejeje

Digo casi porque nos falta un pequeño detalle. Me explico y es que me piden hacer una tabla con su respectivo contenido. Hasta ahi ningun problema. El problema esta en que me piden que una fila tenga color gris de fondo y la siguiente blanco, y asi alternandose hasta que la tabla se acaba. Para ello uso el <xsl:for-each select="..."/> para cada fila.

Sabes alguna forma de hacerlo? Se puede poner alguna variable e ir alternando con un if?

salu2
  #9 (permalink)  
Antiguo 21/01/2004, 12:32
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Pues no sabes como me alegro de que os haya servido a los dos para entender como funciona esto del XML. Al menos la base se consigue con esos tutoriales.

Respecto a tu pregunta, en "Learn XPath" de w3schools aparece la función position() que te devuelve la posición que ocupa un nodo dentro de su padre. De esta forma podrías controlar lo de los colores de cada fila consultando si es una posición par o impar.

Para calcular si es par o impar, se haría viendo si el módulo de 2 de lo que te devuelve position() es 0 (sería par) o distinto de 0 (impar).

En operaciones matemáticas te explica la operación mod y en Funciones te explica la función position().

Lo controlarias con un if, por supuesto!

Suerte!

Un beso
  #10 (permalink)  
Antiguo 22/01/2004, 18:24
 
Fecha de Ingreso: enero-2004
Mensajes: 11
Antigüedad: 20 años, 10 meses
Puntos: 0
Se fini. Tal y como me lo pidieron. Clavao. Muxisimas gracias Helbira.

Un besazo
  #11 (permalink)  
Antiguo 23/01/2004, 03:44
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Exclamación off-topic



  #12 (permalink)  
Antiguo 09/02/2004, 04:43
 
Fecha de Ingreso: enero-2004
Mensajes: 11
Antigüedad: 20 años, 10 meses
Puntos: 0
Atributos

A los wenos dias,

Estamos otra vez de vuelta. Es que en el curro me han pedio un pequeño cambio, que en un principio es una xorrada, que es el mostrar un atributo en lugar de otro, el atributo lo escribo en una tabla, el problema es que este segundo atributo tiene un espacio y al escribirmelo dentro de la tabla me escribe un enter en lugar del espacio, weno si pongo 7 espacios me pone un enter y si pongo palabra-espacio-palabra-espacio-palabra me pone un enter entremedio de cada palabra. ¿Alguna idea para conservar los espacios en atributos? Prove con <xsl:preserve-space elements pero no se si es porque no funciona asi o porque no se utilizarlo. Muchas gracias.

Salu2
  #13 (permalink)  
Antiguo 09/02/2004, 05:32
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Creo que no entendí lo que te pasa realmente (es lunes, jeje) porque he creado un pequeño ejemplo y no me pasa los espacios en blanco del valor de un atributo a saltos de linea.

El ejemplo que creé fue el siguiente:

mundo.xml:

Código PHP:
<?xml version="1.0"?>
<?xml
-stylesheet type="text/xsl" href="C:\Documents and Settings\encarretero\Escritorio\mundo.xsl"?>
<greeting saludo="Hola Mundo"/>
mundo.xsl:

Código PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- <xsl:strip-space elements="*" /> -->
<!-- <xsl:preserve-space elements="*" /> -->
<xsl:template match="/">
  <html>
  <body>
  <xsl:for-each select="greeting">
    <p>
    <xsl:value-of select="@saludo" />
    </p>
  </xsl:for-each>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>
A mi me mantiene perfectamente el espacio en blanco que existe en el atributo saludo incluso sin utilizar <xsl:preserve-space /> eso es porque según he leído en el manual de w3schools es la opción por defecto.

Pero voy más allá, si uso <xsl:strip-space /> también me mantiene correctamente los espacios.

Fíjate en la nota del enlace que te pongo de w3schools. Dice que <xsl:preserve-space /> y <xsl:strip-space /> deben ser elementos de primer nivel en el archivo xsl.

Fíjate también que el * hace referencia a todos los elementos de tu archivo XML.
  #14 (permalink)  
Antiguo 11/02/2004, 06:48
 
Fecha de Ingreso: enero-2004
Mensajes: 11
Antigüedad: 20 años, 10 meses
Puntos: 0
Espacios

A mi tp me funciona con el preserve space entonces me han dixo que haga una funcion javascript que sustituya los espacios en blanco por un   que es un espacio en blanco pero el problema es que a esta funcion tengo que pasarle lo que obtiene del elemento del xml. entonces antes del <xsl:template match="/"> declaro la funcion asi --> <xsl:script language="javascript" implements-prefix="funcion">
y dentro pongo la funcion. despùes en el xsl declaro una variable con lo que hay dentro de descripcion --> <xsl:variable name="var" select= "&lt;xsl:value-of select&quot;descripcion&quot;/&gt;"/> y llamo a la funcion --> <xsl:value-of select="funcion:QuitarEspacios(var)" /> y entonces me da un error diciendo que funcion no esta definida. La funcion funciona perfectamente pq ya ha sido probada en un html normal aparte. tambien lo he probado pasandole directamente lo que hay dentro de descripcion pero me dice que es una expresion XPath invalida. nose que mas intentar.

Gracias

Salu2
  #15 (permalink)  
Antiguo 11/02/2004, 06:55
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Que expresion XPath usas exactamente? Si veo el fallo en eso pues al menos te valdrá esa solución.

Si no es muy largo tu estructura XML, publicala tambien aqui... o al menos hasta el nivel de descripción.
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
  #16 (permalink)  
Antiguo 13/02/2004, 06:48
 
Fecha de Ingreso: enero-2004
Mensajes: 11
Antigüedad: 20 años, 10 meses
Puntos: 0
Al fin

Pues eso, que ya esta acabado y sin problemas de enters ni lexes.

No me preguntes como he conseguido arreglarlo porque ha sido algo wraro wraro wraro. Como el xsl de teppa y el mio cambiaban en pocas cosas he ido retocandolos hasta que me ha salido creo que es algo relacionado con una tabla, pero weno lo importante es que ya esta acabado.

Creo que si tu ayuda no podria haberlo acabado y por eso te doy mil gracias

Cuidate muxo y weno... ya nos veremos otra vez por aki si me mandan otra vez lo mismo y tengo problemas (espero no tenerlos jejeje)

Lo dixo 1 besazo

Salu2
  #17 (permalink)  
Antiguo 13/02/2004, 06:53
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Exclamación off-topic

Lo has hecho tú, no yo

Malegro
  #18 (permalink)  
Antiguo 28/02/2004, 15:18
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
pues a mi no me funciona

pueden poner mas ejemplo....


de como parsear?
  #19 (permalink)  
Antiguo 01/03/2004, 02:30
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 1 mes
Puntos: 5
Por qué no pones tú código XML y XSL y nos dices exactamente que es lo que no te funciona?

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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:17.