2008 13 de agosto 2008

Encadenamiento cadena delimitada dentro de un XSL

Si su requerimiento es para dividir un valor de nodo de un XML, que contiene una cadena delimitada del valor, en términos individuales, entonces has llegado al lugar correcto ... echar un vistazo a el siguiente ejemplo. Si usted está familiarizado con un poco de XML y XSL ... No creo que usted tendría que dar ninguna explicación.
Además, este ejemplo incluye el uso de funciones como el XSL xsl: call-template, xsl: substring-before, xsl: substring-after, si eso es lo que está después.

XML para ser transformado (food.xml): -
Supongamos que la tarea es para acortar la cadena delimitada por comas, en los de la etiqueta "palabras clave"

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>

XSL (food.xsl): -

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>

</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

Resultante de salida HTML: -

<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>

Ni que decir ... solo cambiar el parámetro "delimitr" para el delimitador de su elección


2008 11 de agosto 2008

Download Faux Situado plantilla de WordPress

Si usted es uno de esos tipos (como yo), que a menudo comprobar el CSS de la página HTML bien hecho, para inspirarse o lo que sea, entonces te habrás dado cuenta que hemos utilizado Posicionamiento FAUX (como ya mencioné en mi artículo anterior Somos utilizando la posición absoluta de imitación: Un diseño brillante CCS )

Hicimos un buen trabajo en esta plantilla, así que pensé que sería agradable para compartir .... Descargar Este Tema WordPress (descargado 196 veces)


2008 07 de agosto 2008

Animoto: Really Nice "rica interfaz de usuario" sin Flash!

¿Has visto animoto.com? Bueno! esto no es un anuncio, me gustó mucho! y es el beso de interfaz de usuario realmente ASS

Me encontré con este sitio hace unas semanas. Vio la primera página, DINT molestó mucho. Para mí, era sólo un sitio con cierto contenido de Flash ricos, permitiendo a los usuarios subir imágenes, elegir alguna pista y convertirla en una presentación de diapositivas de imagen agradable. Descargar FLV, y ponerlo en cualquier sitio de su elección (YouTube, Metacafe, Facebook y similares) ... y punto.

Ayer cuando vi a las páginas de flujo interno, que tuvo el usuario mediante la creación de esta slideshow .... Fui Oh wow! Cuando me di cuenta de que no había utilizado poco de FLASH. Era en efecto una rica interfaz de usuario. Todos los desarrolladores de la interfaz de usuario debe aspirar a crear o al menos ser parte del equipo que ha hecho esta interfaz .... Absolutamente brillante! Y inspirador!

TIENE UNA MIRADA ... http://animoto.com/ ... y registrar y jugar con él ... sólo entonces se puede apreciar el genio.


2008 04 de agosto 2008

Un problema con la posición () en XSL ... ¿o no?

Tuve este problema al crear un Strage XSL hoy. Buscó respuestas en toda la red, pero no podía encontrar ninguna .... En realidad, supongo! Yo sé cuál es mi fuerza problema era, entonces, ¿qué debo buscar?

De todos modos! Sólo en caso de tener este mismo problema también y de alguna manera por el poder de la fuerza que logró aterrizar en esta página ... que me lo agradecería toneladas ... Y si alguna vez ha accidentalmente aterrizó en esta página por alguna extraña suerte y pasar a ser un desarrollador XSL, NO HAGA UNA NOTA DE ESTA AHORA, PARA EL FUTURO causa, Si algún día, se enfrenta a este problema, entonces la fuerza no podría estar con ustedes.

Enunciado del problema:
Tengo este XML, donde hay dos nodos con varios elementos en él y los elementos entre estos dos nodos tienen una correspondencia uno a uno. En el siguiente ejemplo, cada elemento en el nodo <array name="PLAYURL" /> se refiere (posición correspondiente) a un elemento en el nodo de <array name="SITENAME" />

<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>

Ahora, tengo un bucle, en el que recorrer <array name="SITENAME">, y quiero conseguir el artículo relacionado (en la posición correspondiente) en <array name="PLAYURL">,

Lo que normaly trataría de hacer es ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

LO SIENTO! Esto funcionará ... ¡Ah!! Gratamente ...

Ahora es probable que le gustaría probar, algo como esto ...

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

Y De nuevo, esto no funcionará ... Ahora que rascarse la cabeza, tratando de ponerse en contacto con todos los que usted piensa que sabe algo de XSL y podría ser de alguna ayuda ... intentar todas las opciones de otros ... y aún funciona costumbre ... Bueno! Eso es lo que me pasó el atleast ...

EXCLUIR LA DESESPERACIÓN! LA PRUEBA

<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>

DONT ASK ME por qué funciona. Porque no tengo una razón bien ... si lo haces! Por favor deja un comentario. Puede ser muy útil. También! si usted tiene un mejor título para este post, lo mándenme una línea de :)


2008 02 de agosto 2008

Ajuste de la DOCTYPE en XSL

La semana pasada he creado un progresivo HTML / CSS de diseño para un cliente, probado en IE6, IE7 y FF 3, parecía estar perfectamente bien ... hasta que aparezca! el diseño fue más allá por el ciclo de manufacting. No pudo. Los elementos de diseño de página acaba de ir por todo el lugar cuando el diseño HTML se convirtió en XSL y XML aplicado a él ... Charlatán!

No podía dormir bien durante el fin de semana, en previsión de la mañana del lunes, cuando voy a tener que solucionar este problema SH **. Pero ahora tiene un poco de experincia en el tratamiento de este tipo de situaciones (no estándar del navegador, quiero decir), yo sabía que tenía que ver con nada más que DOCTYPE .... y fue ...

El problema:
Usted quiere que el control sobre el DOCTYPE, ya que su transformación se incluyen un DOCTYPE por defecto de forma explícita, y el diseño estará fuera por un sorteo.

La solución:
Ficha XSLT proporciona métodos de producción para establecer un DOCTYPE de la elección. Además, para nosotros los desarrolladores de la interfaz de usuario, los temas de interés serían los métodos de salida HTML y XML métodos de producción .

Bueno! antes de que te aburres, aquí está la solución.

Por ejemplo, si usted tenía el DOCTYPE siguiente en su versión HTML:. -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Luego, en el XSL que tendría que tener lo siguiente: -

<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />

y ¡Por fin! Cómo asegurarse de que su salida obedece a la XSLT DOCTYPE que usted ha elegido.


NDK en casa | Expresando IT | Boca Expresando | Penmenship Expresando | Awe Expresando | expresarme