2008 20 septembra 2008

TEXTAREA Zbaliť problém v XSL / XSLT


PROBLÉM VYHLÁSENIE:
Narazil som na tento problém, pokiaľ ide o textareas v XSLs. Jednoducho povedané, problém nastáva, keď máte prázdnu <textarea> značku, potom sa zrúti do <textarea />.
tj ak by ste mali niečo ako nasledujúce vo vašom XSL a XML dát pre hodnoty Textarea, vráti nič ...

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

Ako prehliadača nerozpoznajú to, spôsobí zvyšok formulára HTML pre spustenie do textového poľa.

Možné riešenia:

V XSL, pridajte non-breaking-space () po xsl: hodnota tag.BEWARE, postarať sa o tejto medzery ste pridali, počas validácie na strane klienta v tejto oblasti.

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

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

Alebo
Vložte <xsl:value-of select="@unknown" /> značku smerujúcu k neznámemu atribútu. To bude nútiť PHP parser XSLT generovať otváranie a zatváranie textové oblasti značku, aj keď to nemá nič medzi tým.

Alebo
Vložte <xsl:text> pole obsahujúce priestor prinútiť koncovú značku.

Avšak, hoci vyššie uvedené riešenie by sa mohlo zdať problém vyriešiť, ja som stále presvedčený, že oni majú pravdu a najlepšie spôsoby, ako ho vyriešiť. Ak existuje nejaký iný lepší spôsob stanovenia tejto vtip, Prosím, dajte nám vedieť.


2008 Augusta 4. 2008

Problém s umiestnením () v XSL ... alebo je to?

Mal som tento problém strage pri vytváraní XSL dnes. Hľadali odpovede na celom internete, ale couldnt nájsť žiadne .... Vlastne myslím, že! Ja viem, čo dint môj problém bol, tak čo mám hľadať?

Každopádne! Len v prípade, že máte tento istý problém taky a nejako o moc síl sa vám podarilo pristáť na tejto stránke ... ďakujem by ste mi veľa ... A ak ste náhodou pristál na tejto stránke nejakú podivnú osudom a sa stalo, že developer XSL, DO MAKE A túto skutočnosť na vedomie TERAZ do budúcna príčiny, ak je nejaký deň, budete čeliť tomuto problému, potom sila nemusí byť s vami.

Problém vyhlásenie:
Mám tento XML, kde sú dva uzly s viac položiek v ňom a tovaru medzi týmito dvoma uzlami majú jeden na jedného korešpondenciu. V nižšie uvedenom príklade, každá položka v uzle <array name="PLAYURL" /> týka (zodpovedajúcej pozície) na položku v uzle <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>

Teraz mám slučku, kde aj cez slučku <array name="SITENAME">, a chcem sa dostať súvisiace položky (na zodpovedajúcu pozíciu) v <array name="PLAYURL">,

Čo by ste normálne snažiť urobiť, je ...

<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! TENTO zvyknutý fungovať ... Ach! Surpised ...

Teraz by ste asi chceli vyskúšať, niečo také ...

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

A opäť to zvyknutý pracovať ... Teraz ste poškriabaniu vašej hlave, snaží sa obrátiť každý, kto si myslíte, že pozná nejaký XSL a mohla by byť žiadny zmysel ... pokusu každú inú možnosť ... a ešte to nebude fungovať ... No! To je čo sa mi stalo aspon ...

Dont Zúfalstvo! Skúste to

<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ýtaj sa ma prečo to funguje. Príčina i dont mať správny dôvod ... ak nechcete! Prosím, Drop komentár. To by mohlo byť celkom užitočné. Tiež! Ak máte lepší názov pre tento post, to ma vysadil riadku :)


NDK domov | Vyjadrenie IT | Vyjadrenie poschodia | Vyjadrenie Penmenship | Vyjadrenie Awe | Vyjadrenie Myself