2008 20 września 2008

Problem Collapse TEXTAREA w XSL / XSLT


OŚWIADCZENIE PROBLEM:
Pobiegłem do tego problemu w odniesieniu textareas w XSLs. W prostych słowach, problem pojawia się gdy masz puste tag <textarea>, wtedy zwinąć go do <textarea />.
czyli gdybyś miał coś takiego w swoim XSL i danych XML dla wartości TEXTAREA, nic nie zwraca ...

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

Jako przeglądarki nie rozpoznają tego, spowoduje to reszta postaci HTML do uruchomienia w polu tekstowym.

Możliwe rozwiązania:

W XSL, dodać twardej-space () po xsl: tag.BEWARE wartości, dbać o tej dodatkowej przestrzeni dodałeś podczas walidacji po stronie klienta w tej dziedzinie.

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

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

Lub
Włóż <xsl:value-of select="@unknown" tag /> wskazujący na nieznanego atrybutu. To wymusi na PHP parser XSLT do generowania tekstu otwierania i zamykania znacznika obszaru, nawet jeśli nie ma nic pomiędzy.

Lub
Wstawić pole <xsl:text> zawierający przestrzeń w celu wymuszenia znacznika zamykającego.

Jednak, choć wyżej wymienione rozwiązania mogą wydawać się rozwiązać ten problem, nadal nie jestem przekonany, że mają rację i najlepsze sposoby aby go naprawić. Jeśli istnieje jakikolwiek inny lepszy sposób rozwiązywania tego quirk, proszę daj nam znać.


2008 4 sierpnia 2008 r.

Problem z pozycją () w XSL ... albo to jest?

Miałem ten problem strage podczas tworzenia XSL dziś. Poszukiwanie odpowiedzi w całej sieci, ale nie potrafił znaleźć żadnego .... Właściwie myślę! I dint wiem, co mój problem był, więc co mam szukać?

Tak! Na wszelki wypadek masz ten sam problem zbyt bardzo i jakoś przez mocą mocy, jakiej udało się wylądować na tej stronie ... chcesz mi podziękować ton ... A jeśli przypadkowo wylądował na tej stronie jakiegoś dziwnego losu i zdarzy ci się być Deweloper XSL, DO zanotuj to teraz, w przyszłości przyczyn, jeśli niektóre dni można napotkać ten problem, wtedy siła nie może być z tobą.

Oświadczenie problem:
Mam ten XML, w którym są dwa węzły z wielu elementów w nim i elementy pomiędzy tymi dwoma węzłami mieć jeden do jednego korespondencję. W poniższym przykładzie, każda pozycja w węźle <array name="PLAYURL" /> odnosi (odpowiedni pozycja) do elementu w węźle <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 mam pętlę, gdzie i pętli <array name="SITENAME"> i chcę, aby uzyskać powiązanych artykułów w odpowiedniej pozycji) w <array name="PLAYURL">,

Co byś normalnie spróbuj zrobić to ...

<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! TO wont pracy ... Ach! Surpised ...

Teraz będzie prawdopodobnie chcesz spróbować, coś takiego ...

<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 znowu to przyzwyczajenie pracować ... Teraz zarysowania głowę, próbując skontaktować się z każdego, kto zna trochę uważasz, XSL i może być żadną pomocą ... spróbować każdą inną opcję ... i nadal to przyzwyczajenie pracować ... Cóż! Thats co mi się conajmniej ...

DONT Rozpacz! TRY 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>

Nie pytaj mnie dlaczego to działa. Bo nie mam z prawym rozumem ... jeśli to zrobisz! Proszę wrzucić komentarz. To może być całkiem przydatne. Również! jeśli masz lepszy tytuł dla tego postu, to napisz do mnie linii :)


NDK startowej | Wyrażając IT | Podniebienie Wyrażając | Penmenship Wyrażając | Awe Wyrażając | Wyrażając Myself