XML:
<row type="header">
<column>href</column>
<column>other</column>
</row>
<row type="data">
<column>a</column>
<column>b</column>
</row>
XSLT :(我确定我在下面的模板中的行[@type ='data'] /列)
<xsl:template match="column" mode="panelTabsBody">
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="../../row[@type='header']/column[text()='href'][position()]" />
</xsl:attribute>
</a>
</td>
</xsl:template>
如何获取text()等于href的列位置?如果它更容易,我可以给列值'href'一个属性。示例:<column type='link'>href</column>
修改
我尝试了以下,但这没有工作
XSLT:
<xsl:template match="column" mode="panelTabsBody">
<xsl:variable name="testt" select="count(../../row[@type='header']/column[text()='href']/preceding-sibling::column) + 1" />
<td>
<a>
<xsl:attribute name="href">
<xsl:value-of select="../../row[@type='header']/column[position() = testt]" />
</xsl:attribute>
</a>
</td>
</xsl:template>
答案 0 :(得分:1)
简单的答案是testt
是变量,因此您需要使用$
前缀来引用它
<xsl:value-of select="../../row[@type='header']/column[position() = $testt]" />
当然,这是选择&#39;标题的列。您已经知道的行包含&#34; href&#34;。也许你只需要这样做?
<xsl:value-of select="../column[position() = $testt]" />