2008 13 agost 2008

Encadenament cadena delimitada dins d'un XSL

Si el seu requeriment és per dividir un valor de node d'un XML, que conté una cadena delimitada del valor, en termes individuals, llavors has arribat al lloc correcte ... fer una ullada a l'exemple. Si vostè està familiaritzat amb una mica de XML i XSL ... No crec que vostè hauria de donar cap explicació.
A més, aquest exemple inclou l'ús de funcions com el XSL xsl: call-template, xsl: substring-before, xsl: substring-after, si això és el que està després.

XML per ser transformat (food.xml): -
Suposem que la tasca és per escurçar la cadena delimitada per comes, en els de l'etiqueta "paraules clau"

<?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>

Resultant de sortida 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>

No cal dir ... només canviar el paràmetre "delimitr" per al delimitador de la seva elecció


2008 11 agost 2008

Download Faux Situat plantilla de WordPress

Si vostè és un d'aquests tipus (com jo), que sovint comprovar el CSS de la pàgina HTML ben fet, per inspirar-o el que sigui, llavors t'hauràs adonat que hem utilitzat Posicionament Faux (com ja vaig esmentar en el meu article anterior Som utilitzant la posició absoluta d'imitació: Un disseny brillant CCS )

Vam fer una bona feina en aquesta plantilla, així que vaig pensar que seria agradable per compartir .... Descarregar Aquest Tema WordPress (descarregat 195 vegades)


2008 7 agost 2008

Animoto: Really Nice "rica interfície d'usuari" sense Flash!

Has vist animoto.com? Bé! això no és un anunci, em va agradar molt! i és el petó d'interfície d'usuari realment ASS

Em vaig trobar amb aquest lloc fa unes setmanes. Va veure la primera pàgina, DINT molestar molt. La veia com només un lloc amb cert contingut de Flash rics, permetent als usuaris pujar imatges, triar alguna pista i convertir-la en una presentació de diapositives d'imatge agradable. Descarregar FLV, i posar-lo en qualsevol lloc de la seva elecció (YouTube, Metacafe, Facebook i similars) ... i punt.

Ahir quan vaig veure a les pàgines de flux intern, que va tenir l'usuari mitjançant la creació d'aquesta slideshow .... Vaig Oh wow! Quan em vaig adonar que no havia utilitzat poc de FLASH. Era en efecte una rica interfície d'usuari. Tots els desenvolupadors de la interfície d'usuari ha d'aspirar a crear o almenys ser part de l'equip que ha fet aquesta interfície .... Absolutament brillant! I inspirador!

TÉ UNA MIRADA ... http://animoto.com/ ... i registrar i jugar-hi ... només llavors es pot apreciar el geni.


2008 4 agost 2008

Un problema amb la posició () en XSL ... o no?

Vaig tenir aquest problema en crear un Strage XSL avui. Va buscar respostes en tota la xarxa, però no podia trobar cap .... En realitat, suposo! Jo sé quina és la meva força problema era, llavors, què he de buscar?

De tota manera! Només en cas de tenir aquest mateix problema també i d'alguna manera pel poder de la força que va aconseguir aterrar en aquesta pàgina ... que m'ho agrairia tones ... I si alguna vegada ha accidentalment va aterrar en aquesta pàgina per alguna estranya sort i passar a ser un desenvolupador XSL, NO FACI UNA NOTA D'AQUESTA ARA, PER AL FUTUR causa, Si algun dia, s'enfronta a aquest problema, llavors la força no podria estar amb vostès.

Enunciat del problema:
Tinc aquest XML, on hi ha dos nodes amb diversos elements en ell i els elements entre aquests dos nodes tenen una correspondència un a un. En el següent exemple, cada element en el node <array name="PLAYURL" /> es refereix (posició corresponent) a un element en el node 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>

Ara, tinc un bucle, en el qual recórrer <array name="SITENAME">, i vull aconseguir l'article relacionat (en la posició corresponent) en <array name="PLAYURL">,

El que normaly tractaria de fer és ...

<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>

EM SAP GREU! Això funcionarà ... Ah!! Gratament ...

Ara és probable que li agradaria provar, alguna cosa com això ...

<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>

I De nou, això no funcionarà ... Ara que rascar el cap, tractant de posar-se en contacte amb tots els que vostè pensa que sap alguna cosa de XSL i podria ser d'alguna ajuda ... intentar totes les opcions d'altres ... i encara funciona costum ... Bé! Això és el que em va passar el atleast ...

EXCLOURE LA DESESPERACIÓ! LA PROVA

<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 per què funciona. Perquè no tinc una raó ben ... si ho fas! Si us plau deixa un comentari. Pot ser molt útil. També! si vostè té un millor títol per aquest post, el mándenme una línia de :)


2008 2 agost 2008

Ajust de la DOCTYPE en XSL

La setmana passada he creat un progressiu HTML / CSS de disseny per a un client, provat en IE6, IE7 i FF 3, semblava estar perfectament bé ... fins que aparegui! el disseny va anar més enllà pel cicle de manufacting. No va poder. Els elements de disseny de pàgina acaba d'anar per tot el lloc quan el disseny HTML es va convertir en XSL i XML aplicat a ell ... Xerraire!

No podia dormir bé durant el cap de setmana, en previsió del matí de dilluns, quan vaig a haver de solucionar aquest problema SH **. Però ara té una mica de experincia en el tractament d'aquest tipus de situacions (no estàndard del navegador, vull dir), jo sabia que tenia a veure amb res més que DOCTYPE .... i va ser ...

El problema:
Vostè vol que el control sobre el DOCTYPE, ja que la seva transformació s'inclouen un DOCTYPE per defecte de forma explícita, i el disseny estarà fora per un sorteig.

La solució:
Fitxa XSLT proporciona mètodes de producció per establir un DOCTYPE de l'elecció. A més, per a nosaltres els desenvolupadors de la interfície d'usuari, els temes d'interès serien els mètodes de sortida HTML i XML mètodes de producció .

Bé! abans que t'avorreixes, aquí està la solució.

Per exemple, si vostè tenia el DOCTYPE següent en la seva versió HTML:. -

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

Després, en el XSL que hauria de tenir el següent: -

<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" />

i Per fi! Com assegurar-se que la seva sortida obeeix a la XSLT DOCTYPE que vostè ha triat.


NDK a casa | Expressant IT | Boca Expressant | Penmenship Expressant | Awe Expressant | expressar-me