我正在将xml表转换为其他表规范,并且我需要确定给定表中任何行中存在的最大列数。因此,如果我的XML是:
<table>
<row>
</column>
</row>
<row>
</column>
</column>
</column>
</row>
<row>
</column>
</column>
</row>
</table>
我需要在表模板中获取“ 3”作为变量,以便可以如下重写表:
<table cols="3">
...
我正在这样做,这很愚蠢(但是足够好...)。
<xsl:template match="table">
<xsl:variable name="high_col_count">
<xsl:choose>
...
<xsl:when test="tr/td[position()=4]">4</xsl:when>
<xsl:when test="tr/td[position()=3]">3</xsl:when>
<xsl:when test="tr/td[position()=2]">2</xsl:when>
...
</xsl:choose>
</xsl:variable>
...
</xsl:template>
我无法确定一个更好的方法是不对变量进行迭代,据我所知,由于变量是不可变的,在xslt中这是不可能的。有没有更简单的方法可以简单地从列数最多的行中检索计数?
答案 0 :(得分:1)
尝试使用此代替:
<xsl:template match="table">
<table cols="{max(row/count(column))}">
...
</table>
</xsl:template>