XSLT如何只包含字符串值中的数字

时间:2014-11-26 09:51:46

标签: xml xslt xslt-1.0

如何才能获得字符串值中的数字?我试过这个功能,但它不起作用。可能有什么问题?

原始文件:

    <?xml version="1.0" encoding="utf-8"?>
    <ns0:Request xmlns:ns0="http://ABS.NM.B">
        <TRANSACTION>
          <LREF>SUBIS     70055593</LREF>
        </TRANSACTION>
    </ns0:Request>

XSLT:

    <xsl:template match="TRANSACTION" >
     <Transaction reference="{LREF}" >
        <xsl:attribute name="reference">
         <xsl:value-of select="replace($input, '.*[^.\d](.*)$', '$1')"/>
        </xsl:attribute>
    </Transaction>
    </xsl:template>

结果:

     <Transaction reference="70055593">
     </Transaction>

1 个答案:

答案 0 :(得分:2)

您的代码几乎正确,但变量只需要设置如下。

<xsl:template match="TRANSACTION" >
 <xsl:variable name="input" select="LREF"/>
  <Transaction reference="{LREF}" >
    <xsl:attribute name="reference">
     <xsl:value-of select="replace($input, '.*[^.\d](.*)$', '$1')"/>
    </xsl:attribute>
 </Transaction>
</xsl:template>