我在XSLT的一个职位上遇到了麻烦,我会解释我在做什么。
我有一个for each for each for each,就像这样...
<xsl:for-each select="tagA">
<xsl:value-of select="position()"/>
<xsl:for-each select="tagB">
<xsl:value-of select="position()"/>
</xsl:for-each>
</xsl:for-each>编辑1:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<main>
<tagA>
<row>
<info>
tag A pos one
</info>
</row>
<row>
<info>
tag A pos two
</info>
</row>
<tagB>
<rowB posB="reference of tag A pos One">
<rowB posB="reference of tag A pos Two">
</tagB>
</main>XSL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/main">
<xsl:for-each select="tagA">
<xsl:for-each select="tagB">
<xsl:if test="//tagA/info = 'tag A pos one'">
HERE I WANT TAG A POSITION
</xsl:if>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>大概是这样,问题是:如何在tagB select中获取"tagA“位置值?
很抱歉我的英语不好,希望你能帮助我。
谢谢你的帮助。
发布于 2014-12-16 03:26:59
您可以在此处使用变量
<xsl:for-each select="tagA">
<xsl:variable name="tagAPosition" select="position()"/>
<xsl:value-of select="$tagAPosition" />
<xsl:for-each select="tagB">
<xsl:value-of select="$tagAPosition" />
<xsl:value-of select="position()"/>
</xsl:for-each>
</xsl:for-each>因此,在tagB循环外部和内部,$tagAPosition的值都是相同的。
https://stackoverflow.com/questions/27491528
复制相似问题