2008 20 вересня 2008

TEXTAREA Згорнути проблема в XSL / XSLT


Постановка завдання:
Я зіткнувся з цією проблемою щодо прокручуємо в XSLs. Говорячи простими словами, проблема виникає тоді, коли у вас є порожні теги <textarea>, то він завалиться його <textarea />.
тобто якщо у вас щось на кшталт такого в XSL і XML дані значення TEXTAREA, нічого не повертає ...

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

Як браузери не визнають цього, це призведе до решти вигляді HTML бігти в текстовій області.

Можливі рішення:

В XSL, додати нерозривний-просторі () після того, XSL: Значення tag.BEWARE, щоб подбати про це додатковий простір додані під час перевірки на стороні клієнта в цій галузі.

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

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

Або
Вставте <xsl:value-of select="@unknown" /> тег, що вказує на невідомий атрибут. Це змусить парсер PHP XSLT для створення області відкриття і закриття текст тега, навіть якщо вона не має нічого між ними.

Або
Вставте <xsl:text> поле, що містить простір, щоб змусити закриває тег.

Однак, незважаючи на вищевказані рішення, здавалося б вирішити цю проблему, я все ще не впевнені, що вони мають рацію, і кращий спосіб це виправити. Якщо є інші кращий спосіб виправити цю особливість, будь ласка, повідомте нам.


2008 4 серпня 2008

Проблема з позиції () в XSL ... чи ні?

У мене була ця проблема strage при створенні XSL сьогодні. Подивився відповіді всій мережі, але не міг знайти .... Насправді я думаю! Я знаю, що вм'ятина моя проблема була, так що мені шукати?

У всякому разі! Тільки у випадку, якщо у вас є ця ж проблема і якось занадто силою змусити вас вдалося посадити на цій сторінці ... Ви мене дякувати тонн ... І якщо ви випадково приземлився на цій сторінці, з незрозумілої доля і ви будете Розробник XSL, DO Запишіть це зараз, НА МАЙБУТНЄ причина, якщо в один прекрасний день, ви стикаєтеся з цією проблемою, то сила не може бути з вами.

Постановка завдання:
У мене є 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">,

Що б ви normaly спробувати зробити, це ...

<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 і може бути будь-якої допомоги ... Ви намагаєтеся будь-який інший варіант ... і все ж це не буде працювати ... Ну! Ось що трапилося зі мною, принаймні ...

DONT зневіряйтеся! Спробуйте це

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

Не питайте мене, чому це ПРАЦЮЄ. Тому що я не маю права причина ... якщо ви робите! Будь ласка видалити коментар. Це може бути дуже корисним. Крім того! якщо у вас є кращу назву для цієї посади, зробити напишіть мені :)


NDK будинку | Висловлюючи IT | Висловлюючи неба | Висловлюючи Penmenship | Висловлюючи трепет | виразити себе