Привет я использую 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>
Насколько я понимаю, вы хотите создать HTML, который будет отображать белое пространство в браузере.
Если это так, не используйте пробелы - браузер отображает только один пробел для непрерывной последовательности пробелов.
Используйте неразрывные пробелы:
Так, вместо :
<xsl:text> </xsl:text>
используйте :
<xsl:text>   </xsl:text>
Инструкция 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>