Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Obtener datos de un XML y mostrarlo con AJAX

Estas en el tema de Obtener datos de un XML y mostrarlo con AJAX en el foro de Frameworks JS en Foros del Web. Hola! Es que estuve buscando informacion en Foros del Web sobre pasar datos de un XML y he recopilado informacion pero queria plantearles un problema ...
  #1 (permalink)  
Antiguo 11/01/2008, 20:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 5
Antigüedad: 16 años, 6 meses
Puntos: 0
Exclamación Obtener datos de un XML y mostrarlo con AJAX

Hola! Es que estuve buscando informacion en Foros del Web sobre pasar datos de un XML y he recopilado informacion pero queria plantearles un problema que me ha surgido y no veo que sea semejante. Os pongo en situación:

Tenemos un script en xml llamado "Trabajos.xml" que funciona junto con su xsl "Trabajos.xsl". Este script recorre el directorio de alumnos viendo si tienen o no subido su trabajo, y si lo tienen, se saca informacion del trabajo de cada uno (nombre del trabajo, miembros, objetivos, capitulos, etc.), mostrandola por pantalla de acuerdo a una hoja de estilos CSS. Es muy comodo porque lo hace automaticamente y ahorra mantenimiento.

Mi intencion es realizar una nueva version en AJAX. Para ello, tenia pensado en crear una pagina "index.html" la cual, usando AJAX, me permitiera extraer los datos que ha generado el script "Trabajos.xml" y ponerlos en el index.html. La idea es crear una lista o menu dinamico igual que lo hacia el script, con el nombre de los trabajos, en la parte izquierda. Asi cuando se hiciera click cargar en el centro la pagina web del alumno. La idea es esa, sin utilizar ningun archivo mas. Ahora mi pregunta es la siguiente:

¿Es posible hacer lo que digo? Si es posible con que me indiquen algun hilo o algun ejemplo que lo pueda aplicar me sobra y les estaria eternamente agradecido. Tengo de tiempo hasta este miercoles para dar con la solucion. Y si no es posible pues que me lo digan tambien.

------------------------------------



id="menu"
________
trabajo 0 | id="contenidos"
trabajo 1 | Aqui se cargaria la pagina web
trabajo 2 | al hacer click en algun link del
trabajo 3 | trabajo i
trabajo 4 |
... |
trabajo n |
________|

(fig.1)


Esta idea la extraje de la siguiente fuente de CRISTALAB:

>>>> http://www.cristalab.com/files/ejemplos/ajax/ajax.html

Si entrais aqui lo vereis mejor. La idea es que el menu de la izquierda se cree automaticamente, que "el sentido del tacto" sea el trabajo 0, " sensaciones" el trabajo 1, y asi sucesivamente tantas veces como trabajos saque del script.

el index.html tambien lo extraje de ahi. Os pongo la descarga de los archivos del ejemplo tambien:

>>>> http://www.cristalab.com/files/ejemplos/ajax/ajax.zip


------------------------------------


Os pongo cada uno de los archivos para que puedan ver el codigo:

--- index.html --- ( index.html se representa masomenos en fig.1 )

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Presentacion de Trabajos de IMD</title>
<!-- Esta es la referencia al codigo asincrono javaScript que quiero averiguar -->
<script language="JavaScript" type="text/javascript" src="js/codigo.js"/>
</head>

<body>
<div id="menu">
<!-- Aqui crearia dinamicamente una lista con el nombre de los trabajos sacados del script "Trabajos.xml" . Cada opcion de la lista seria un link que apuntase a su pagina web -->
</div>

<div id="contenidos">
<!-- aqui quiero cargar la pagina web de cada uno -->
</div>

</body>
</html>


------------------------------------
------------------------------------


--- codigo.js ---

esto es lo que no lo tengo nada claro. Veo soluciones pero no se si es realmente lo que estoy pidiendo: Sacar la info del xml que os digo y poder plasmarla en mi index.html.


------------------------------------
------------------------------------


--- Trabajo.xml --- script realizado por Juan Sanchez

<?xml version="1.0" encoding="ISO-8859-1"?>

<?cocoon-process type="xslt"?>
<?xml-stylesheet href="Trabajos.xsl" type="text/xsl"?>
<?cocoon-disable-caching?>
<?cocoon-process type="xinclude"?>
<Raiz/>

------------------------------------
------------------------------------

--- Trabajo.xsl --- script realizado por Juan Sanchez y Manuel Agusti

<?xml version="1.0" encoding="ISO-8859-1" ?>

- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" version="1.0" indent="yes" encoding="ISO-8859-1" />
- <xsl:template match="Raiz">
- <!-- Aqui seleccionamos todos los trabajos. Luego con "ComprobarDuplicados.xsl" comprobamos los
duplicados y mostramos la página html

-->
- <!-- XSL
-->
- <xsl:processing-instruction name="xml-stylesheet">
<xsl:text>type="text/xsl" href="ComprobarDuplicados.xsl"</xsl:text>
</xsl:processing-instruction>
- <!-- Proceso Cocoon "xslt"
-->
- <xsl:processing-instruction name="cocoon-process">
<xsl:text>type="xslt"</xsl:text>
</xsl:processing-instruction>
- <!-- Deshabilitar caché
-->
<xsl:processing-instruction name="cocoon-disable-caching" />
- <Trabajos>
- <!-- <xsl:variable name="Alumnes" select="document('http://futura.disca.upv.es/~imd/Treballs/Alumnos.xml')"/>
<xsl:variable name="Alumnes" select="document('Alumnes.xml')"/>
<p>Es veuen els Alumnes?</p>

<p><xsl:value-of select="$Alumnes"/></p>

- 20 Nov. 2k7
<xsl:variable name="Alumnes" select="document('Alumnes.xml')"/>
datosAlumnes[@mostrarTreballs]
<xsl:variable name="Alumnes" select="document({curs/datosAlumnes}"/>


<xsl:variable name="fAlumnes" select="curs/datosAlumnes"/>
<xsl:variable name="Alumnes" select="document( $fAlumnes )"/>


-->
<xsl:variable name="Alumnes" select="document('Alumnes.xml')" />
- <xsl:for-each select="$Alumnes/Alumnos/Alumno">
- <!-- <xsl:variable name="Fichero" select="concat('/home/docente/alumnos/', substring-before(@email, '@'), '/public_html/trabajoIMD.xml')"/>
<xsl:variable name="direccioXML" select="concat('http://futura.disca.upv.es/~', substring-before(@email, '@'), '/trabajoIMD.xml')"/>


<xsl:variable name="Fichero" select="concat('/home/docente/alumnos/', substring-before(@email, '@'), '/public_html/trabajo.xml')"/>

-->
<xsl:variable name="Fichero" select="concat('/home/alumno/', substring-before(@email, '@'), '/public_html/trabajo.xml')" />
<xsl:variable name="direccioXML" select="concat('http://futura.disca.upv.es/~', substring-before(@email, '@'), '/trabajo.xml')" />
<xsl:variable name="Trabajo" select="document($Fichero)" />
- <!-- Comprobació a mitan camí - ->
<xsl:value-of select="@nombre"/> <xsl:text> </xsl:text>
<br/>
<xsl:value-of select="substring-before(@email, '@')"/>
<br/>
<xsl:value-of select="$Trabajo"/> <xsl:text> </xsl:text>
<br/>
<!- - Fi de la comprobació a mitan camí
-->
- <xsl:if test="$Trabajo!=''">
- <!-- Trabajo
-->
- <Trabajo>
- <!-- URL del trabajo
-->
- <DireccionXML>
<xsl:value-of select="$direccioXML" />
</DireccionXML>
- <!-- Titulo
-->
- <Titulo>
<xsl:value-of select="$Trabajo/Trabajo/Titulo" />
</Titulo>
- <!-- Componentes
-->
- <Componentes>
- <!-- Componente
-->
- <xsl:for-each select="$Trabajo/Trabajo/Grupo/Componente">
- <!-- <xsl:variable name="login"><xsl:value-of select="substring-before(Datos/@Correo,'@')"/></xsl:variable>
<xsl:if test="$login!='' and ($Alumnes/Alumnos/Alumno[substring-before(@email,'@')=$login])">

-->
- <Componente>
- <!-- <xsl:attribute name="nombre"><xsl:value-of select="$Alumnes/Alumnos/Alumno[substring-before(@email,'@')=$login]/@nombre"/></xsl:attribute>
<xsl:attribute name="apellido1"><xsl:value-of select="$Alumnes/Alumnos/Alumno[substring-before(@email,'@')=$login]/@apellido1"/></xsl:attribute>
<xsl:attribute name="apellido2"><xsl:value-of select="$Alumnes/Alumnos/Alumno[substring-before(@email,'@')=$login]/@apellido2"/></xsl:attribute>
<xsl:attribute name="email"><xsl:value-of select="$Alumnes/Alumnos/Alumno[substring-before(@email,'@')=$login]/@email"/></xsl:attribute>

-->
<xsl:value-of select="Nombre" />
</Componente>
- <!-- </xsl:if>

-->
</xsl:for-each>
</Componentes>
- <!-- Resumen o descripción del trabajo
-->
- <!-- <xsl:variable name="login"><xsl:value-of select="substring-before($Trabajo/Trabajo/Grupo/Componente[1]/Datos/@Correo,'@')"/></xsl:variable>
<xsl:if test="$login!='' and ($Alumnes/Alumnos/Alumno[substring-before(@email,'@')=$login]) and ($Trabajo/Trabajo/Introduccion/Objetivos != '')">

-->
- <Objetivos>
- <!-- Componente
-->
- <xsl:for-each select="$Trabajo/Trabajo/Introduccion/Objetivos/Frase">
- <Frase>
<xsl:value-of select="." />
</Frase>
</xsl:for-each>
</Objetivos>
- <!-- </xsl:if>

-->
</Trabajo>
</xsl:if>
</xsl:for-each>
</Trabajos>
</xsl:template>
</xsl:stylesheet>

------------------------------------


Gracias por todo de antemano. Toda ayuda es bien recibida. Hay que aprender de los errores. Un saludo a la comunidad.
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 03:41.