lnamest 和 nameend 变为 colspan
lnamest and nameend change into colspan
我想将 namest 和 nameend 属性值更改为 colspan 属性值
XML 输入:
<row>
<entry nameend="col2" namest="col1">Claims</entry>
</row>
我有 XSL:
<xsl:template match="row">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="entry">
<td>
<xsl:apply-templates/>
</td>
</xsl:template>
预期输出为:
<tr>
<td colspan="2">Claims</td>
</tr>
如果 namest="1"
和 nameend="3"
,colspan
的值将是 3
。它必须依赖于 namest 和 nameend 值。它必须从 namest 和 nameend 计算数字。
很难在没有给出规则的情况下根据单个示例提出算法。以下内容适用于您在上面的输入:
<xsl:template match="entry">
<xsl:variable name="start" select="substring-after(@namest, 'col')" />
<xsl:variable name="end" select="substring-after(@nameend, 'col')" />
<td colspan="{$end - $start + 1}">
<xsl:apply-templates/>
</td>
</xsl:template>
这是假设您使用的是 XSLT 1.0。如果您使用的是 XSLT 2.0 处理器并且您的样式表被标记为 version="2.0"
那么您需要做:
<xsl:template match="entry">
<xsl:variable name="start" select="number(substring-after(@namest, 'col'))" />
<xsl:variable name="end" select="number(substring-after(@nameend, 'col'))" />
<td colspan="{$end - $start + 1}">
<xsl:apply-templates/>
</td>
</xsl:template>
我想将 namest 和 nameend 属性值更改为 colspan 属性值
XML 输入:
<row>
<entry nameend="col2" namest="col1">Claims</entry>
</row>
我有 XSL:
<xsl:template match="row">
<tr>
<xsl:apply-templates/>
</tr>
</xsl:template>
<xsl:template match="entry">
<td>
<xsl:apply-templates/>
</td>
</xsl:template>
预期输出为:
<tr>
<td colspan="2">Claims</td>
</tr>
如果 namest="1"
和 nameend="3"
,colspan
的值将是 3
。它必须依赖于 namest 和 nameend 值。它必须从 namest 和 nameend 计算数字。
很难在没有给出规则的情况下根据单个示例提出算法。以下内容适用于您在上面的输入:
<xsl:template match="entry">
<xsl:variable name="start" select="substring-after(@namest, 'col')" />
<xsl:variable name="end" select="substring-after(@nameend, 'col')" />
<td colspan="{$end - $start + 1}">
<xsl:apply-templates/>
</td>
</xsl:template>
这是假设您使用的是 XSLT 1.0。如果您使用的是 XSLT 2.0 处理器并且您的样式表被标记为 version="2.0"
那么您需要做:
<xsl:template match="entry">
<xsl:variable name="start" select="number(substring-after(@namest, 'col'))" />
<xsl:variable name="end" select="number(substring-after(@nameend, 'col'))" />
<td colspan="{$end - $start + 1}">
<xsl:apply-templates/>
</td>
</xsl:template>