2008 20 setembre 2008

TEXTAREA problema de col · lapse en XSL / XSLT


Enunciat del problema:
Em vaig trobar amb aquest problema en relació amb àrees de text en un XSLs. En paraules simples, el problema sorgeix quan es té una etiqueta <textarea> en blanc, llavors es va a col · lapsar a <textarea />.
és a dir, si tenia alguna cosa com el següent en el seu XSL i les dades XML per al valor de TEXTAREA, no torna res ...

<textarea name='description'> <xsl:value-of select="DESCRIPTION"/> </ textarea>

Com els navegadors no reconeixen això, farà que la resta del formulari HTML per executar-se en l'àrea de text.

POSSIBLES SOLUCIONS:

En el XSL, afegiu un non-breaking-espai () després que el xsl: tag.BEWARE de valor, per tenir cura d'aquest espai extra que s'afegeix, durant la validació del costat del client d'aquest camp.

<textarea name='description'> <xsl:value-of select="DESCRIPTION"/> </ textarea>

O
<xsl:value-of select="concat (DESCRIPTION,'')"/>

O
Inserir una etiqueta de <xsl:value-of select="@unknown" /> apuntant a un atribut desconegut. Això obligarà a l'intèrpret PHP XSLT per generar un text d'obertura i tancament de l'etiqueta d'àrea, encara que no té res en el medi.

O
Inserir un camp de <xsl:text> que conté un espai per obligar una etiqueta de tancament.

No obstant això, tot i les solucions esmentades anteriorment pot semblar per solucionar el problema, encara no estic convençut que tenen raó i les millors maneres de solucionar-ho. Si no hi ha altra manera millor de fixar aquesta peculiaritat, si us plau contacteu amb nosaltres.


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


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