2008 2008年 8月 13
如果你的要求是分裂一個XML節點的值,包含分隔的字符串值,將個別項目,那麼你已經達到了正確的地方......看看下面的例子。 如果你熟悉XML和XSL的一點點......我不認為你需要任何解釋。
另外,這個例子包括使用XSL:XSL函數一樣調用模板,XSL:子串以前,XSL:子串後,如果是你是什麼。
XML進行轉換(food.xml): -
承擔的任務是由逗號分隔的字符串標記化標籤“關鍵字”,
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="food.xsl"?>
<food>
<date>July 2008</date>
<description>All about things we eat everyday</description>
<keywords>Fruits, Vegetables, Pulses, Meat, Cereals </keywords>
</food>
XSL(food.xsl): -
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XSL 1.0 Delimited String Tokeniser</title>
</head>
<body>
<xsl:value-of select="food/meta"/>
<div >
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="food/keywords" />
<xsl:with-param name="delimitr" select="','" />
</xsl:call-template>
</div>
</body>
</html>
</xsl:template>
<xsl:template name="tokenize">
<xsl:param name="string" />
<xsl:param name="delimitr" />
<xsl:choose>
<xsl:when test="contains($string, $delimitr)">
<div style="border:1px solid red;">
<h3><xsl:value-of select="substring-before($string,$delimitr)" /></h3>
<xsl:variable name="data" select="substring-before($string,$delimitr)"/>
</div>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="substring-after($string, $delimitr)" /><xsl:with-param name="delimitr" select="$delimitr" /></xsl:call-template>
</xsl:when>
<xsl:otherwise>
<div style="border:1px solid red;">
<h3><xsl:value-of select="$string" /></h3>
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
結果輸出的HTML: -
<div>
<div style="border: 1px solid red;">
<h3>Fruits</h3>
</div>
<div style="border: 1px solid red;">
<h3> Vegetables</h3>
</div>
<div style="border: 1px solid red;">
<h3> Pulses</h3>
</div>
<div style="border: 1px solid red;">
<h3> Meat</h3>
</div>
<div style="border: 1px solid red;">
<h3> Cereals </h3>
</div>
</div>
不用說了......只是改變參數“delimitr”,您選擇的分隔符
沒有評論 |標籤: 教程 , XSLT |張貼在XSL中
2008 8月 11 二零零八年
如果你是那些傢伙(像我),經常檢查CSS以及HTML頁面,得到啟發或其他,那麼你可能已經注意到,我們已經使用人造定位 (我以前的文章中已經提到,我們使用仿的絕對定位:燦爛CCS佈局 )
我們做了一些良好的工作基於此模板,所以認為它會很高興分享.... 下載這個WordPress主題(下載195次)
1評論 |標籤: 下載 , WordPress模板 |發布下載
2008 2008年 8月 7
你見過animoto.com? 好吧! 這不是一個廣告,我真的很喜歡它! 它親吻驢子的UI確實
幾個星期前,我碰到這個網站。 看到的第一頁,DINT麻煩得多。 對於我來說,這只是另一些豐富的Flash內容的網站,允許用戶上傳圖片,選擇一些曲目,並轉換成一個漂亮的圖片幻燈片。 下載的FLV,並把它放在任何你選擇的網站(YouTube上的Metacafe,Facebook和喜歡)......期間。
昨天,當我看到內部流動的網頁,用戶通過這個幻燈片的創建了.... 我去了哦,哇! 當我意識到有不使用閃光燈位。 這確實是豐富的用戶界面。 所有UI開發人員必須渴望創造或至少是一個團隊已經完成了這個接口的一部分...... 絕對精彩! 和鼓舞人心的!
看看... http://animoto.com/ ...和登記,並發揮它...只有你能欣賞天才。
| 1個評論 |標籤: 豐富的用戶界面 , 精心設計網站發布的用戶界面Desgin
2008 2008年 8月 4
我有這個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>
不要問我為什麼工作。 因為我沒有權利的原因......如果你這樣做! 請不要刪除評論。 這可能是非常有用的。 還可以! 如果你有更好的這篇文章的標題,請給我一條線 
沒有評論 |標籤: XSL , XSL怪癖 , XSLT |張貼在XSL中
2008 2008年 8月 2
上週,我創建了一個客戶端progessive HTML / CSS佈局,在IE6,IE7和FF測試,似乎完全正常......直到! 佈局更進一步下來manufacting週期。 它失敗了。 頁面佈局元素在HTML佈局時被轉換成XSL和XML應用到它...遊民!地方去!
無法入睡週末,預計在星期一早上,當我要解決這個的SH **。 但現在有一點在處理這樣的情況下(瀏覽器怪癖,我的意思)的遭遇,我知道了,別的什麼也不做DOCTYPE .... 和它...
問題:
你想控制的DOCTYPE,因為你的轉型將包括一個默認的DOCTYPE明確,你的佈局將是折騰了。
解決方案:
XSLT規範提供輸出方法來設置的體例選擇的DOCTYPE。 此外,我們的UI開發,感興趣的主題將是HTML輸出方法和XML輸出的方法 。
好吧! 之前,你覺得無聊,這裡是修復。
例如,如果你在你的HTML版本有以下DOCTYPE: -
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
然後在XSL,你就必須具備以下條件: -
<xsl:output method="html" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent="yes" />
最後! 確保您的XSLT輸出,服從您所選擇的DOCTYPE。
1評論 |標籤: 瀏覽器怪癖 , DOCTYPE , XML , XSL |張貼在XSL中