在xslt中插入空格

时间:2010-08-10 19:59:17

标签: xslt

您好我正在使用xslt显示我的webpart上的链接,并且我在链接旁边添加了加号图片。但我想在它们之间添加一些空格。我添加了,但这不是真的有效。我错过了什么吗?请在下面找到我的代码。

感谢。

    <xsl:choose>
        <!-- do _self -->
        <xsl:when test="contains(Link,'xxx')">
          <a target="_self">
            <xsl:attribute name="href">
                <xsl:value-of select="URL"/>
            </xsl:attribute>
                <xsl:value-of select="Title"/>
          </a>
        </xsl:when>
        <!-- use _blank (new browser window) -->
    <xsl:otherwise>
        <a target="_blank">
         <xsl:attribute name="href">
            <xsl:value-of select="URL"/>
         </xsl:attribute>
            <xsl:value-of select="Title"/>
        </a> 
   </xsl:otherwise>
   </xsl:choose>
   <xsl:text> </xsl:text>
   <xsl:choose>
       <xsl:when test="Description !=' ' ">
          <img class="imageclass" src="/images/plus.gif"></img>
        </xsl:when> 
   </xsl:choose>

2 个答案:

答案 0 :(得分:14)

我的理解是你想要生成在浏览器中显示空白区域的HTML。

如果是这样,不使用空格 - brouser只为连续的空格序列显示一个空格。

使用不间断空格&#xA0;

所以,而不是

  <xsl:text>   </xsl:text>

使用

  <xsl:text>&#xA0;&#xA0;&#xA0;</xsl:text>

答案 1 :(得分:5)

xsl:text指令是您征服的正确工具。例如,这个样式表:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()" name="identity">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="a">
        <xsl:call-template name="identity"/>
        <xsl:text> </xsl:text>
    </xsl:template>
</xsl:stylesheet>

使用此输入:

<div>
    <a href="#">link1</a>
    <a href="#">link1</a>
    <a href="#">link1</a>   
</div>

输出:

<div><a href="#">link1</a> <a href="#">link1</a> <a href="#">link1</a> </div>