Xslt開發中善用<xsl:comment/>

初學者常會遇見這樣的情況,通過Xslt格式經輸出的html頁,明明在查看源代碼中什麼都有,但就是不能在IE中顯示出來,在Firefox中確顯示正常,在Dreamweaver的所見即所得編輯器中也正常。我以前也爲這個問題迷惑過,還就此問題問了孟子E章,在此謝謝孟子。

  究其原因,是因爲IE的的Bug,根據最新XHTML的標準,如果一個html/xml標籤內沒有內容,可以使用反斜槓來結束這個標籤,假如你在xslt中寫入<script src="youscriptfile.js"></script>,並且通過vs.net 2005(通過其它語言格式化我沒有測試過)中的XslCompiledTransform類進行格式,那麼你輸入出的結果將是<script src="youscriptfile.js" />,XslCompiledTransform是.Net Framework 2.0才增加的,嚴格執行XHTML,但令人費解的是IE卻不能支持以反斜槓結尾的標籤。
  我們可以在script中間加一些字符,就如:<script src="youscriptfile.js">a</script>,但對於其它HTML標籤如DIV就不行了,因爲這樣會輸出內容。
  <xsl:comment />標籤會輸出一個<!---->HTML註釋,比如我們在CSS的Style樣式可以這樣寫:
css 代碼
 
  1. <style type="text/css">   
  2. <xsl:comment>   
  3.     .yourcss   
  4.     {   
  5.   
  6.     }   
  7. </xsl:comment>   
  8. </style>  
    將輸出成爲:
css 代碼
 
  1. <style type="text/css">   
  2. <!--   
  3.     .yourcss   
  4.     {   
  5.   
  6.     }   
  7. -->   
  8. </style>  
    根據這個特性,我們可以這樣寫:<script src="youscriptfile.js"><xsl:comment /></script>,
<xsl:comment />
。這樣輸出的結果在IE中就能正常顯示了。
  你可能會想到直接在XSLT中使用<!---->,但很遺憾地告訴你,這樣是不行的,因爲<!---->也是XSLT的註釋,<!---->是不會被輸出的。
  如果你不能確定HTML標籤中是否有內容,請在標籤中加上<xsl:comment />,這樣可以避免不必要的麻煩。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章