2010-04-27 49 views
9

我在包含多個信息字段的XSL代碼中創建標題,即「名稱:Bob Birthdate:1900年1月1日」等。 :即使使用<xsl:text>標記,XSL也會忽略我的空白

<xsl:text> Gender: Male </xsl:text> 

但是在頁面上,性別/男性周圍的空白被忽略。有什麼我失蹤?

在此先感謝。

+0

好問題( +1),請參閱我的答案以瞭解XSLT如何處理空白區域。 – topskip 2010-04-27 20:14:26

回答

5

如果你想輸出你應該指定一個<xsl:output method="text"/>作爲<xsl:stylesheet>元素的子元素的文本文件。

當治療輸出HTML解析器會收拾你的空間,如果與非中斷空格HTML輸出是你想要的,你可以使用&#160;非打破空間的實體(注意:&nbsp;可能無法正常工作,因爲它不是一個XML是什麼實體,除非你自己聲明)。

+1

聲明像這樣... <!DOCTYPE樣式表[ \t <!ENTITY nbsp「 」> ]> – dacracot 2010-04-27 20:25:24

1

您需要添加&nbsp;而不是空格。爲了獲得超過1個空間

<xsl:text><![CDATA[&nbsp;&nbsp;&nbsp; Gender: Male &nbsp;&nbsp;&nbsp;]]></xsl:text>

2

這不是一個嚴格的XSLT問題,因爲XSLT不會佔用你的空間。這種轉變

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:template match="/"> 
    <foo> 
     <xsl:text> Gender: Male </xsl:text> 
    </foo> 
    </xsl:template> 
</xsl:stylesheet> 

<?xml version="1.0" encoding="UTF-8"?> 
<foo> Gender: Male </foo> 

您使用HTML作爲輸出?然後使用非破壞空間來填充空格。

6

您可能需要使用...

<xsl:text xml:space="preserve"> Gender: Male </xsl:text> 
2

只需使用

&#160;Gender: Male&#160; 

它代表空格在XSL像

&nbsp;Gender:Male&nbsp; 

在HTML