2009-11-20 104 views
1

我想在XSL文檔中包含特殊字符,如£,#,但一直沒有找到一個好的方法來做到這一點如果有人可以提出一種方法來實現這一點,我會非常感激下面的示例在XSL中使用特殊字符

尼克

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="/"> 
<HTML> 
    <HEAD></HEAD> 
    <BODY> 
    <TABLE> 
     <TR> 
     <TD>Account&nbsp;Name</TD> 
     <TD>Finish</TD> 
     <TD>Start</TD> 
     <TD>Completed</TD> 
     <TD>Completed&nbsp;Date</TD> 
     <TD>Day</TD> 
     <TD>User</TD> 
     <TD>Your&nbsp;Name</TD> 
     <TD>Company&nbsp;Name</TD> 
     <TD>Job&nbsp;Title</TD> 
     <TD>Would&nbsp;you&nbsp;like&nbsp;to&nbsp;attend?</TD> 
    </TR> 
     <xsl:for-each select="NewDataSet/Table"> 
     <TR> 
      <TD> 
      <xsl:value-of disable-output-escaping="yes" select="Account&nbsp;Name"/> 
      </TD> 
      <TD> 
+0

這個:select =「帳戶 名稱」對我來說看起來很奇怪 - 你有一個你想要處理的XML的例子嗎? – Murph 2009-11-20 12:58:35

回答

4

只要把字符的文件中原樣,£和#不是特殊字符。

您的問題是&nbsp;這不僅僅是HTML中的XML中的已知實體,因此您的XSL無效。我將使用&#160;這是非破壞空間的unicode字符實體。

將您的文件保存爲UTF-8也是一個不錯的主意。

+0

感謝您的迴應安東尼。 我發現了以下錯誤: 消息= 「預期的表達的最後,發現 '' 帳戶 - >< - 名稱」 <的xsl:for-每個選擇= 「NewDataSet /表」> 的 希望我失去了一些東西很明顯這裏! 再次感謝 尼克 – Nick 2009-11-20 12:50:40

+0

嗯,我們沒有結束的樂趣和遊戲與英鎊,所以我不同意它不是特殊的。實際上,如果你把它作爲數字值,即£,你將更有可能得到想要的結果。 – Murph 2009-11-20 13:00:48

+0

+1。 £和非破壞性空間沒有什麼特別之處;如果您遇到問題,您在使用所有非ASCII字符時遇到問題,這在本世紀是一個恥辱。 @Nick:'select =「Account Name」'不是一個有效的XPath,無論你如何編碼non-breaking空間。你想做什麼? – bobince 2009-11-20 13:09:37