我在XSLT中遇到问题,我会解释我在做什么。
我为每个人分别为每个人,就像这样......
<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”位置值?
抱歉我的英语不好,我希望你能帮助我。
谢谢你提前。
答案 0 :(得分:1)
您可以在此处使用变量
<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>
因此,$tagAPosition
循环外部和内部tagB
的值相同。