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

Selección dinámica de ID en xml

Estas en el tema de Selección dinámica de ID en xml en el foro de Programación General en Foros del Web. tengo aldo como esto <biblioteca> <documento> <id=01>001</id> <titulo>musica de camara </titulo> <estilo>barroco</estilo> <texto>[descripcion general]</texto> </documento> <documento> <id=02>002</id> <titulo>musica de orquesta</titulo> <estilo>neoclasico</estilo> <texto>[descripcion general]</texto> </documento> <documento> ...
  #1 (permalink)  
Antiguo 27/01/2005, 15:56
Avatar de Musika  
Fecha de Ingreso: junio-2002
Mensajes: 72
Antigüedad: 21 años, 10 meses
Puntos: 0
Selección dinámica de ID en xml

tengo aldo como esto
<biblioteca>
<documento>
<id=01>001</id>
<titulo>musica de camara </titulo>
<estilo>barroco</estilo>
<texto>[descripcion general]</texto>
</documento>
<documento>
<id=02>002</id>
<titulo>musica de orquesta</titulo>
<estilo>neoclasico</estilo>
<texto>[descripcion general]</texto>
</documento>
<documento>
<id=02>125</id>
<titulo>musica de peliculas</titulo>
<estilo>contemporáneo</estilo>
<texto>[descripcion general]</texto>
</documento>
</biblioteca>

necesito creal el xsl que sea capaz de seleccionar solo la [descripción] de acuerdo al [id]

me ayudais
__________________
La mejor forma de enseñar es aprendiendo
------------------------------------------------
Un pokitin de Musika en tu Vida
  #2 (permalink)  
Antiguo 28/01/2005, 07:48
 
Fecha de Ingreso: enero-2005
Mensajes: 47
Antigüedad: 19 años, 3 meses
Puntos: 0
Podrias dar más detalles de lo que deseas realizar, qué tipo de salida quieres que produzca el xsl, de donde viene el parametro que te dira que id quieres tomar....
De todas formas aqui va una forma de hacerlo:

Primero coloca <identificador id= "01">001</identificador>
Luego el xsl sera algo como:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="ISO-8859-1"/>

<xsl:param name="id">01</xsl:param>
<xsl:template match="/">
<html>
<head>
<title>Titulo</title>
</head>
<body>
<table border="1">
<tbody>
<tr>
<xsl:for-each select="biblioteca/documento"> <xsl:if test="identificador[@id=$id]">
<td><xsl:value-of select="texto"/></td>
</xsl:if>
</xsl:for-each>
</tr>
</tbody>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Si haces una aplicación con php la forma de pasar el parametro al xsl es
$xp->setParameter($namespace, 'id', $id]); por ejemplo, haciendo esto no debes colocar la línea <xsl:param name="id">01</xsl:param> sin el 01.

Espero que te sirva de algo
  #3 (permalink)  
Antiguo 28/01/2005, 14:44
Avatar de Musika  
Fecha de Ingreso: junio-2002
Mensajes: 72
Antigüedad: 21 años, 10 meses
Puntos: 0
Mostrar consultas dinámicas

Cita:
Iniciado por mycs
Podrias dar más detalles de lo que deseas realizar, qué tipo de salida quieres que produzca el xsl, de donde viene el parametro que te dira que id quieres tomar....
De todas formas aqui va una forma de hacerlo:

Primero coloca <identificador id= "01">001</identificador>
Luego el xsl sera algo como:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="ISO-8859-1"/>

<xsl:param name="id">01</xsl:param>
<xsl:template match="/">
<html>
<head>
<title>Titulo</title>
</head>
<body>
<table border="1">
<tbody>
<tr>
<xsl:for-each select="biblioteca/documento"> <xsl:if test="identificador[@id=$id]">
<td><xsl:value-of select="texto"/></td>
</xsl:if>
</xsl:for-each>
</tr>
</tbody>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

Si haces una aplicación con php la forma de pasar el parametro al xsl es
$xp->setParameter($namespace, 'id', $id]); por ejemplo, haciendo esto no debes colocar la línea <xsl:param name="id">01</xsl:param> sin el 01.

Espero que te sirva de algo



entonces quedará el xml asi??
<biblioteca>
<documento>
<identificador id= "01">001</identificador>
<titulo>musica de camara </titulo>
<estilo>barroco</estilo>
<texto>[descripcion general]</texto>
</documento>
<documento>
<identificador id= "02">010</identificador>
<titulo>musica de orquesta</titulo>
<estilo>neoclasico</estilo>
<texto>[descripcion general]</texto>
</documento>
<documento>
<identificador id= "03">001</identificador>
<titulo>musica de peliculas</titulo>
<estilo>contemporáneo</estilo>
<texto>[descripcion general]</texto>
</documento>
</biblioteca>

hasta alli llego...
claro tienes razón puedo crear un php, pero el problema es que mi cliente no puede colocar php en su servidor ( o no quiere, vaya), pero necesita una solucion practica... (cosas de la life)

el segundo plateamiento es el siguente...

el xsl que me has dado me viene fenómeno... si solo tomo el identificador id=01 por separado...

¿pero de que manera puedo hacer para desde un mismo html me llame al xsl(xml) varios identificadores?
a ver si me explio, hago el listado de los libros y necesito un link que me coloque el resultado del id=x y la descripción de ese id=x

encontre un ejemplo con combos javascript, pero al intentar hacerlo sin los combos me he vuelto un lio.. te doy el link correspondiente...

http://gemini.udistrital.edu.co/comu...htm#ejercicio5

alli dan la solucion para mostrar consultas dinámicas... lo baje pero en local no me funciona. necesito eso idem pero sin el combo javascript..
__________________
La mejor forma de enseñar es aprendiendo
------------------------------------------------
Un pokitin de Musika en tu Vida
  #4 (permalink)  
Antiguo 29/01/2005, 05:56
Avatar de Musika  
Fecha de Ingreso: junio-2002
Mensajes: 72
Antigüedad: 21 años, 10 meses
Puntos: 0
tablas dinamicas....xml

EL CODIGO KE HE ENCONTRADO ES ESTE
<html>

<head>
<script type="text/javascript">
function testclick(field)
{
var row=field.rowIndex
xmldso_list.recordset.absoluteposition=row
td_title.innerHTML=xmldso_list.recordset("TITLE")
td_artist.innerHTML=xmldso_list.recordset("ARTIST" )
td_year.innerHTML=xmldso_list.recordset("YEAR")
td_country.innerHTML=xmldso_list.recordset("COUNTR Y")
td_company.innerHTML=xmldso_list.recordset("COMPAN Y")
td_price.innerHTML=xmldso_list.recordset("PRICE")
}
</script>
</head>

<body>
<xml id="xmldso_list" src="cd_catalog.xml"></xml>

<table border="1" bgcolor="yellow">
<tr align="left"><th>Title: </th><td id="td_title"></td></tr>
<tr align="left"><th>Artist: </th><td id="td_artist"></td></tr>
<tr align="left"><th>Year: </th><td id="td_year"></td></tr>
<tr align="left"><th>Country:</th><td id="td_country"></td></tr>
<tr align="left"><th>Company:</th><td id="td_company"></td></tr>
<tr align="left"><th>Price: </th><td id="td_price"></td></tr>
</table>

<p><b>Click on one of the CDs in the list:</b></p>

<table datasrc="#xmldso_list" border="1">
<thead>
<tr align="left">
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</thead>
<tr align="left" onclick="testclick(this)">
<td><div datafld="TITLE" /></td>
<td><div datafld="ARTIST" /></td>
<td><div datafld="COUNTRY" /></td>
<td><div datafld="COMPANY" /></td>
<td align="right"><div datafld="PRICE" /></td>
<td><a href="#" ><div datafld="YEAR" />ver</a></td>

</tr>
</table>

</body>
</html>


MI PREGUNTA ES SI DESEO PASAR LOS RESULTADOS A OTRA PAGINA.. QUE DEBO HACER??
__________________
La mejor forma de enseñar es aprendiendo
------------------------------------------------
Un pokitin de Musika en tu Vida
  #5 (permalink)  
Antiguo 31/01/2005, 04:04
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
Puedes pasar parámetros por la URL con el formato:

http://tudominio/tuhtml.html?paramet...ametron=valorn

Esos parametros pasados por la url se pueden leer con Javascript, asi que ya no te hace falta un lenguaje en el lado del servidor como PHP.

La forma de leerlos con Javascript no la recuerdo y no tengo tiempo de buscartela ahora. Pregunta en el foro de JavaScript "Como leer parametros por Request con JavaScript" y busca en la FAQ de JavaScript también. Karlankas es un experto en esto.

Besos
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...
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 04:57.