2008 2008年 09月 20日

在XSL / XSLT TEXTAREA的崩潰問題


問題陳述:
我跑進這是一個有關的XSL文本域的問題。 在簡單的話,問題出現了,當你有一個空白<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,'')"/>


插入1 <xsl:value-of select="@unknown" />標籤指向一個未知的屬性。 這將強制PHP XSLT分析器生成一個文本區域的開幕和閉幕的標籤,即使它有什麼之間。


插入<xsl:text>領域,包含空間,強制關閉標籤。

然而,雖然上述方案似乎來解決這個問題,我仍然不相信他們是正確的和最佳的方式來解決它。 如果有任何其他更好的方式解決這個怪癖,請讓我們知道。


2008 2008年 8月 4

一個位置(在XSL)的問題...是什麼?

我有這個strage問題,同時創造一個XSL的今天。 看著整個淨的答案,但couldnt找到任何.... 其實我猜! DINT我知道我的問題是什麼,所以我看的呢?

無論如何! 以防萬一你有這同樣的問題也莫名其妙的力量,你成功地降落在此頁的權力......你會感謝我萬噸......如果你不小心降落此頁面上的一些奇怪的命運和你剛好是一個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">相關項目(在相應的位置),

你會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,可能是有幫助......你盡一切其他的選項,它仍然不會工作嘛! 那是什麼發生在我ATLEAST ...

回复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的家 | 表達它 表示唇齶裂 表示Penmenship 表示敬畏 表達自己