我想使用XSLT在多行显示地址。 XML是通过Frame工作生成的,在第二个和左边的左边有一些空格。第3行。所以,不能改变XML。
尝试使用<xsl:strip-space elements="*"/>
没有帮助。地址当前显示为:
ABC Company Limited
No.24, Lines Rd
Pannmure, USA
我不想限制Line可以容纳的字符串长度。需要将其显示为:
ABC Company Limited
No.24, Lines Rd
Pannmure, USA
尝试使用normalize-space(data)
- 显示为:
ABC Company Limited No.24, Lines Rd Pannmure, USA
也不要这样。
请尝试&amp;举个例子,我是XSLT的新手。谢谢你的帮助。
答案 0 :(得分:1)
我认为您的输入是这样的:
<text>ABC Company Limited
No.24, Lines Rd
Pannmure, USA</text>
因此,您需要使用递归来选择与normalize-space()相结合的行以删除空白。我只是为另一个模板做了这个,你可以根据自己的喜好进行调整(比如删除行元素:
<xsl:template match="text">
<xsl:call-template name="splitlines">
<xsl:with-param name="text" select="."/>
</xsl:call-template>
</xsl:template>
<xsl:template name="splitlines">
<xsl:param name="text"/>
<xsl:choose>
<xsl:when test="contains($text,'
')">
<line>
<xsl:value-of select="normalize-space(substring-before($text,'
'))"/>
</line>
<xsl:call-template name="splitlines">
<xsl:with-param name="text" select="substring-after($text,'
')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<line>
<xsl:value-of select="normalize-space($text)"/>
</line>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
使用该输入,它将输出:
<line>ABC Company Limited</line><line>No.24, Lines Rd</line><line>Pannmure, USA</line>
我会留给你编辑&#34; line&#34;元素,如果你愿意,可以用换行替换。