2008 20 september 2008

TEXTAREA Collapse problem i XSL / XSLT


PROBLEM UTTALELSE:
Jeg løp inn dette ett problem angående textareas i XSLs. I enkle ord, oppstår problemet når du har en blank <textarea> tag, så vil det kollapse det å <textarea />.
dvs. hvis du hadde noe sånt følgende i XSL og XML-dataene for TEXTAREA verdi, returnerer ingenting ...

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

Ettersom nettlesere ikke anerkjenner dette, vil det føre til at resten av skjemaet HTML til å kjøre inn i tekstområdet.

Mulige løsninger:

I XSL, legger en ikke-breaking-space () etter xsl: value tag.BEWARE, å ta vare på denne ekstra plassen du har lagt under klientsiden valideringer av dette feltet.

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

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

Eller
Sett en <xsl:value-of select="@unknown" /> tag peker til en ukjent attributt. Dette vil tvinge PHP XSLT-parser til å generere en åpning og lukking tekstområdet tag, selv om den har ingenting i mellom.

Eller
Sett en <xsl:text> felt som inneholder en plass å tvinge en avsluttende koden.

Men selv om de nevnte løsningene kan synes å løse problemet, jeg er fortsatt ikke overbevist om at de er rett og beste måtene å fikse det. Hvis det er noen andre bedre måte å fikse dette innfall, kan du gjøre Gi oss beskjed.


2008 August 2008 4

Et problem med posisjon () i XSL ... eller er det?

Jeg hadde dette strage problemet mens du oppretter en XSL i dag. Så etter svar i hele nettet, men kunne ikke finne noen .... Egentlig vel! Jeg dint vet hva mitt problem var, så hva ser jeg etter?

Uansett! Bare i tilfelle du har denne samme problemet også og liksom i kraft av den FORCE du klarte å lande på denne siden ... du ville takke meg tonnevis ... Og hvis du har et uhell havnet på denne siden for noen merkelig skjebne, og du tilfeldigvis være en XSL utvikler, gjør en oppmerksom på dette NÅ, FOR FRAMTIDEN årsak, dersom en dag, står du dette problemet, så FORCE ikke kan være sammen med deg.

Problem statement:
Jeg har denne XML, hvor det er to noder med flere elementer i den og de elementer mellom disse to nodene har en 1-1 korrespondanse. I eksempelet nedenfor, hvert element i noden <array name="PLAYURL" /> gjelder (tilsvarende posisjon) til et element i den noden <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>

Nå har jeg en løkke, hvor jeg sløyfe <array name="SITENAME">, og jeg ønsker å få den relaterte element (ved tilsvarende posisjon) i <array name="PLAYURL">,

Hva ville du normalt prøve gjøre er ...

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

DESSVERRE! DENNE wont arbeide ... Ah!! Surpised ...

Nå ville du sannsynligvis ønske å prøve, noe som dette ...

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

Og igjen denne wont arbeide ... Nå skrape hodet, prøver å kontakte alle som du tror vet noe XSL og kunne være til noen hjelp ... du prøver annenhver alternativ ... og fortsatt den wont arbeide ... Vel! Dvs hva som skjedde med meg atleast ...

DONT Fortvilelse! PRØV DETTE

<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 spør meg hvorfor det fungerer. Fordi jeg ikke har en rett grunn ... hvis du gjør! Vennligst slippe en kommentar. Det kan være ganske nyttig. Også! hvis du har bedre tittel for dette innlegget, gjør send meg en linje :)


NDK hjem | Uttrykke IT | Uttrykke Palate | Uttrykke Penmenship | Uttrykke Awe | uttrykke meg