XSL我需要删除空间

问题描述:

我需要删除之间的空白"|"XSL我需要删除空间

例子:

|| 3.3 | A | 001 | 2017-03-03T16:57:51 | 01 *20001000000200001437 | Only free || 

我需要这样的输出:

||3.3|A|001|2017-03-03T16:57:51|01 *20001000000200001437|Only free|| 
+0

哪个XSLT 1.0处理器将您使用?如果你的处理器支持它,你可以在这里真正使用一些扩展功能。 –

这是相当尴尬的做XSLT 1.0。

鉴于以下输入:

XML

<root> 
    <item>|| 3.3 | A | 001 | 2017-03-03T16:57:51 | 01 *20001000000200001437 | Only free ||</item> 
</root> 

以下样式:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<!-- identity transform --> 
<xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="item"> 
    <xsl:copy> 
     <xsl:variable name="remove-left-spaces"> 
      <xsl:call-template name="remove-spaces"> 
       <xsl:with-param name="text" select="."/> 
       <xsl:with-param name="delimiter" select="' |'"/> 
      </xsl:call-template> 
     </xsl:variable> 
     <xsl:call-template name="remove-spaces"> 
      <xsl:with-param name="text" select="$remove-left-spaces"/> 
      <xsl:with-param name="delimiter" select="'| '"/> 
     </xsl:call-template> 
    </xsl:copy> 
</xsl:template> 

<xsl:template name="remove-spaces"> 
    <xsl:param name="text"/> 
    <xsl:param name="delimiter"/> 
    <xsl:choose> 
     <xsl:when test="contains($text, $delimiter)"> 
      <!-- recursive call --> 
      <xsl:call-template name="remove-spaces"> 
       <xsl:with-param name="text"> 
        <xsl:value-of select="substring-before($text, $delimiter)"/> 
        <xsl:text>|</xsl:text> 
        <xsl:value-of select="substring-after($text, $delimiter)"/> 
       </xsl:with-param> 
       <xsl:with-param name="delimiter" select="$delimiter"/> 
      </xsl:call-template> 
     </xsl:when> 
     <xsl:otherwise> 
      <xsl:value-of select="$text"/> 
     </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

</xsl:stylesheet> 

将返回:

结果

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <item>||3.3|A|001|2017-03-03T16:57:51|01 *20001000000200001437|Only free||</item> 
</root>