从子字符串设置输入值
Set input value from substring
这是我的 xsl (xslt 1.0)
<tr>
<td align="center" height="60">
<input type="hidden" id="imageA" value="{Item}"/>
<div id="barcode" class="barcode"></div>
</td>
</tr>
value="{Item}" 是一个字符串。
item1;item2;item3;item4;
如何得到'item3'唯一?
这将被传递到 JavaScript 以生成条形码。目前条形码可以显示为简单的字符串。
XSLT 1.0 只允许不可变变量。您可以对包含 "value" 属性数据的变量使用递归。
<xsl:template match="/*">
<root>
<xsl:variable name="data" select="td/input/@value"/>
<xsl:call-template name="find">
<xsl:with-param name="count" select="1"/>
<xsl:with-param name="data" select="substring-after($data,';')"/>
<xsl:with-param name="prevData" select="substring-before($data,';')"/>
</xsl:call-template>
</root>
</xsl:template>
<xsl:template name="find">
<xsl:param name="count"/>
<xsl:param name="data"/>
<xsl:param name="prevData"/>
<xsl:if test="$count=3">
<data>
<xsl:value-of select="$prevData"/>
</data>
</xsl:if>
<xsl:if test="$count < 3">
<xsl:call-template name="find">
<xsl:with-param name="count" select="$count+1"/>
<xsl:with-param name="data" select="substring-after($data,';')"/>
<xsl:with-param name="prevData" select="substring-before($data,';')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
希望对您有所帮助
如果第三个词不是您每次都需要的,那么您需要数据来告诉您需要哪个词,并相应地更改查找模板中的数字以满足您的需要
您可以使用:
substring-before(substring-after(substring-after(Item, ';'), ';'), ';')
提取分号分隔字符串的第三个值。
或者,如果使用 Xalan-J 处理器(或支持 EXSLT str:tokenize() function 的其他处理器):
str:tokenize(Item, ';')[3]
这是我的 xsl (xslt 1.0)
<tr>
<td align="center" height="60">
<input type="hidden" id="imageA" value="{Item}"/>
<div id="barcode" class="barcode"></div>
</td>
</tr>
value="{Item}" 是一个字符串。
item1;item2;item3;item4;
如何得到'item3'唯一?
这将被传递到 JavaScript 以生成条形码。目前条形码可以显示为简单的字符串。
XSLT 1.0 只允许不可变变量。您可以对包含 "value" 属性数据的变量使用递归。
<xsl:template match="/*">
<root>
<xsl:variable name="data" select="td/input/@value"/>
<xsl:call-template name="find">
<xsl:with-param name="count" select="1"/>
<xsl:with-param name="data" select="substring-after($data,';')"/>
<xsl:with-param name="prevData" select="substring-before($data,';')"/>
</xsl:call-template>
</root>
</xsl:template>
<xsl:template name="find">
<xsl:param name="count"/>
<xsl:param name="data"/>
<xsl:param name="prevData"/>
<xsl:if test="$count=3">
<data>
<xsl:value-of select="$prevData"/>
</data>
</xsl:if>
<xsl:if test="$count < 3">
<xsl:call-template name="find">
<xsl:with-param name="count" select="$count+1"/>
<xsl:with-param name="data" select="substring-after($data,';')"/>
<xsl:with-param name="prevData" select="substring-before($data,';')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
希望对您有所帮助 如果第三个词不是您每次都需要的,那么您需要数据来告诉您需要哪个词,并相应地更改查找模板中的数字以满足您的需要
您可以使用:
substring-before(substring-after(substring-after(Item, ';'), ';'), ';')
提取分号分隔字符串的第三个值。
或者,如果使用 Xalan-J 处理器(或支持 EXSLT str:tokenize() function 的其他处理器):
str:tokenize(Item, ';')[3]