XSL两个for-each循环用于同一节点

时间:2010-06-15 12:52:52

标签: xslt

我遇到的问题是我想绕过父母使它们变粗,然后通过id:pid(父id)获取孩子并列出它们。我的第二个循环不起作用。

XML

                       

XSL     

<xsl:choose>
 <xsl:when test="@PARENT_OBH_ID">

<b><xsl:value-of select="@TITLE"/></b>

<xsl:for-each select="FOOTER">
   -<xsl:value-of select="@TITLE"/>
</xsl:for-each>


 </xsl:when>
</xsl:choose>

</xsl:for-each>

由于

1 个答案:

答案 0 :(得分:0)

你最好重组这个以使用模板,你现在使用的系统意味着上下文数据变得混乱(你是xslt解析器不确定它应该从哪个元素读取内部属性第二个循环)

<xsl:choose>
 <xsl:when test="@PARENT_OBH_ID">
   <b><xsl:value-of select="@TITLE"/></b>
   <xsl:apply-templates select="FOOTER" />
 </xsl:when>
</xsl:choose>

<xsl:template match="FOOTER">
    <xsl:value-of select="@TITLE"/>
</xsl:template>

apply-templates以页脚元素作为主焦点重新启动上下文(所以@TITLE引用页脚上的title属性,这是我猜的目标?)