在xslt中拆分一个字符串

时间:2011-04-11 06:47:46

标签: xslt

我需要拆分字符串“ab | bc | cd> xy | yz | zx> pq | rs | tu>

如果有人可以帮助我......

这是代码......

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


<xsl:output method="html" version="1.0" indent="yes" />

<xsl:template match="/products/product">

<xsl:variable name="ImageString" select="properties/property[@name='Brand']"></xsl:variable>

<xsl:variable name="ImageFolderName" select="substring-before($ImageString,'#')" ></xsl:variable>
Folder Name:-<xsl:value-of select="$ImageFolderName" ></xsl:value-of>
<br/>
<xsl:variable name="ImageStringName" select="substring-after($ImageString,'#')" ></xsl:variable>
Final String:-<xsl:value-of select="$ImageStringName" ></xsl:value-of>

<xsl:variable name="values">     
    <xsl:text><xsl:value-of select="$ImageStringName" ></xsl:value-of></xsl:text> 
</xsl:variable>

<xsl:call-template name="str:split">    
    <xsl:with-param name="string" select="$values" />    
    <xsl:with-param name="pattern" select="'|'" /> 
</xsl:call-template> 
</xsl:template>

</xsl:stylesheet>

1 个答案:

答案 0 :(得分:4)

总结下面的相关问题:

如果您使用的是XSLT 2.0,则可以使用tokenize(string, separator)方法。

如果您使用的是XSLT 1.0,那么您需要编写一个递归方法来实现此目的。

如果模板支持EXSLT,请使用tokenize()方法。

有关选项的完整详情,请参阅this question