即使使用<xsl:text>标记</xsl:text>,XSL也会忽略我的空格

时间:2010-04-27 19:48:52

标签: xml xslt whitespace

我正在我的XSL代码中创建一个包含多个信息字段的标题,即“名称:Bob Birthdate:1900年1月1日”等。我将它们包含在标签中:

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

但是在页面上,性别/男性周围的空白被忽略了。有什么我想念的吗?

提前致谢。

5 个答案:

答案 0 :(得分:6)

如果要输出文本文件,则应指定<xsl:output method="text"/>作为<xsl:stylesheet>元素的子项。

将输出视为HTML时,解析器可能会打包您的空格,如果HTML输出中包含非中断空格,您可以使用&#160;非中断空格实体(请注意&nbsp;可能不起作用,因为它不是XML实体,除非你自己声明它。)

答案 1 :(得分:6)

您可能需要使用...

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

答案 2 :(得分: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作为输出?然后使用非空格空格。

答案 3 :(得分:1)

只需使用

  &#160;Gender: Male&#160; 

它代表xsl中的空格,如

 &nbsp;Gender:Male&nbsp; 

in html

答案 4 :(得分:0)

您需要添加&nbsp;而不是空格。获得超过1个空间

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