2008 20 септември 2008 г.

Текстовото поле Collapse проблем в XSL / XSLT


ПРОБЛЕМ ОТЧЕТ:
Се натъкнах на този проблем по отношение textareas в XSLs. С прости думи, проблемът възниква, когато имате празна тагове <textarea>,, след това ще го срине до <textarea />.
т.е. ако сте имали нещо като следното в XSL и XML данни за стойността на текстовото поле, връща нищо ...

<textarea name='description'.> <xsl:value-of select="DESCRIPTION"/> </ текстовото поле>

Като браузъри не признават това, той ще доведе до останалата част на формата HTML, за да тичам в полето за текст.

Възможни решения:

В XSL, добавете-пространството () след XSL: tag.BEWARE стойност, да се грижи за това допълнително пространство сте добавили по време потвърждавания клиентската страна на тази област.

<textarea name='description'.> <xsl:value-of select="DESCRIPTION"/> </ текстовото поле>

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

Или
Поставете <xsl:value-of select="@unknown" /> тагове, сочещи към неизвестен атрибут. Това ще принуди XSLT парсера на PHP за генериране на полето за текст, маркер за отваряне и затваряне, дори и да няма нищо между тях.

Или
Поставете една <xsl:text> с поле, съдържащо пространство, за да принудят затварящ таг.

Все пак, въпреки че споменатите по-горе решения може да изглежда, за да оправи проблема, аз все още не съм убеден, че те са прави и най-добрите начини да го поправим. Ако има друг по-добър начин на определяне на този каприз, моля, направете, за да споделите с нас.


2008 Авг 4 2008

Един от проблемите, с позиция () в XSL ... или е то?

Имах този strage проблем, като същевременно се създава XSL днес. Погледнато отговори из мрежата, но нямаше как да намеря .... Всъщност аз предполагам! Удар знам какво е мой проблем, така че какво мога да търсим?

Както и да е! Само в случай, че имате същия този проблем и по някакъв начин чрез силата на сила, който успява да кацне на тази страница ... ще ми благодари т ... И ако сте случайно кацна на тази страница по някаква странна съдба и се случи да бъде разработчик XSL, не СЕ НАПРАВИ бележка за това, ЗА БЪДЕЩЕТО причината, ако някой ден, сте изправени пред този въпрос, тогава СИЛА не може да бъде с вас.

Проблем изявление:
Аз имам този XML, където има два възела с няколко елемента в нея и елементи между тези два възела имат една еднозначна. В примера по-долу, всеки елемент в възел <array, name="PLAYURL" /> се отнася (съответната позиция) към даден елемент в възел <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>

Сега, аз имам една линия, където аз контур чрез <array name="SITENAME">, и аз искам да отида Свързана стока (в съответната позиция) в <array name="PLAYURL">,

Какво бихте нормално опитайте да направите, е ...

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

За съжаление!! Това няма да работят ... Ах!! Surpised ...

Сега вие вероятно ще искате да опитате нещо подобно ...

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

И отново това няма да работят ... Сега можете надраскване главата си, опитвайки се да се свържете с всеки, който мислите, че знаете някои XSL и може да бъде от полза ... опитате всеки друг вариант ... и все още го имам навик работа ... Е! Това какво се случи с мен поне ...

Недей отчайвайте!!! Опитайте това

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

Не ме питат защо работи. Защото няма право причина ... ако го направите! Моля ви, пуснете коментар. Тя може да бъде доста полезен. Също така! ако имате по-добро заглавие за този пост, да ме линия :)


НДК начало | Изразявайки | Изразявайки Вкус | Изразявайки Penmenship | Изразявайки страхопочитание | Изразяване на себе си