XSLT for-each in-each position()

时间:2014-12-15 19:22:41

标签: xslt

我在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”位置值?

抱歉我的英语不好,我希望你能帮助我。

谢谢你提前。

1 个答案:

答案 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的值相同。