2008 20 september 2008

TEXTAREA Collapse probleem in XSL / XSLT


Probleemstelling:
Ik kwam dit als een probleem in verband met tekstvelden in XSLs. In eenvoudige woorden, het probleem doet zich voor wanneer je een lege <textarea> tag, dan zal het instorten het aan <TEXTAREA />.
dwz als je er iets mee als het volgende in uw XSL en de XML-gegevens voor het TEXTAREA waarde, keert niets ...

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

Omdat browsers herkennen dit niet, zal het ertoe leiden dat de rest van het formulier HTML te lopen in het tekstgebied.

MOGELIJKE OPLOSSINGEN:

In de XSL, voeg dan een non-breaking-space () na de xsl: value tag.BEWARE, om te zorgen voor deze extra ruimte die u hebt toegevoegd, tijdens de client side validaties van dit gebied.

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

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

Of
Plaats een <xsl:value-of select="@unknown" /> tag verwijst naar een onbekende attribuut. Dit dwingt de PHP XSLT parser voor een openen en sluiten tekstgebied tag te genereren, ook al heeft het niets daar tussenin.

Of
Plaats een <xsl:text> veld dat een ruimte om een ​​afsluitende tag te forceren.

Echter, hoewel de hierboven genoemde oplossingen lijkt om het probleem op te lossen, ben ik nog steeds niet van overtuigd dat ze gelijk hebben en de beste manieren om het probleem te verhelpen. Als er een andere betere manier om de vaststelling van dit gril, laat het ons weten.


2008 04 augustus 2008

Een probleem met positie () in XSL ... of is het?

Ik had dit strage probleem bij het creëren van een XSL vandaag. Gezocht naar antwoorden in het net, maar couldnt vinden elke .... Eigenlijk denk ik! Ik dint weet wat mijn probleem was, dus wat moet ik op letten?

Hoe dan ook! Voor het geval dat je dit heel hetzelfde probleem ook en een of andere manier door de kracht van de kracht die je weten te landen op deze pagina ... zou je me bedanken ton ... En als u per ongeluk kwam op deze pagina voor een of andere vreemde lot en u zich ook bevindt een XSL-ontwikkelaar, DO NOW noteer DIT VOOR DE TOEKOMST oorzaak, Als op een dag, je gezicht deze kwestie, dan is de FORCE misschien niet bij je zijn.

Probleemstelling:
Ik heb dit XML, waar er twee knooppunten met meerdere items in deze en de voorwerpen die tussen deze twee nodes hebben een een op een correspondentie. In het onderstaande voorbeeld, elk item in het knooppunt <array name="PLAYURL" /> betrekking heeft (overeenkomstige positie) naar een item in het knooppunt <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>

Nu heb ik een lus, waar ik doorlus <array name="SITENAME">, en ik wil voor het betreffende item (op de desbetreffende positie) te krijgen in <array name="PLAYURL">,

Wat u zou zich normaal gesproken proberen te doen is ...

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

SORRY! Werkt deze functie nog ... Ach! Verrast ...

Nu zou u waarschijnlijk wilt proberen, zoiets als dit ...

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

En Ook dit zal niet werken ... Nu heb je krassen op je hoofd, in een poging om iedereen die je denkt kent een aantal XSL contact op te nemen en zou kunnen zijn van enige hulp ... je probeert om de andere optie ... en nog steeds het zal werken ... Nou! Dat is wat er gebeurd is voor mij tenminste ...

DONT wanhoop!! TRY THIS

<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 waarom het werkt. Omdat ik niet een juiste reden hebben ... als je dat doet! Gelieve een reactie te laten vallen. Het kan erg handig worden. Ook! als je een betere titel voor dit bericht, doe stuur me een lijn :)


NDK huis | Te drukken | Het uiten van Smaak | Het uiten van Penmenship | Het uiten van Awe | Het uiten van Myself