2011-05-16 53 views
0

如何从XSLT xsl:for-each循环生成XML节点?如何附加XML的XSLT值?

<xsl:for-each select="//aaa/bbb"> 
     <section name="HOW CAN I INSERT THERE //aaa/bbb//ccc?"> 
     <xsl:for-each select="//aaa/bbb[xxx=101]"> 
      <p> 
      <xsl:value-of select="ParameterName"/> 
      </p> 
     </xsl:for-each> 
     </section> 
    </xsl:for-each> 

回答

1

您的问题并不完全清楚,但你的意思是:

<xsl:for-each select="//aaa/bbb"> 
     <section> 
     <xsl:attribute name="name"> 
      <xsl:value-of select=".//ccc"/> 
     </xsl:attribute> 
     <xsl:for-each select="//aaa/bbb[UtilityDefinitionsID=101]"> 
      <p> 
      <xsl:value-of select="ParameterName"/> 
      </p> 
     </xsl:for-each> 
     </section> 
    </xsl:for-each> 

(未经测试,因为有你想处理XML的无例子)

+0

谢谢。但是,不,我想生成节点

,其名称将包含此元素的值“// aaa/bbb // ccc”。 – misho 2011-05-16 15:37:36

+0

修改。请注意.//ccc应为您正在循环的当前// aaa/bbb节点获取// aaa/bbb // ccc。 – 2011-05-16 16:14:49

1

@乔恩埃杰顿应该是你的答案,也许你想要:

<section> 
    <xsl:attribute name="name"> 
     <xsl:value-of select="ccc"/> 
    </xsl:attribute> 
    <xsl:for-each select="//aaa/bbb[UtilityDefinitionsID=101]"> 
     <p> 
     <xsl:value-of select="ParameterName"/> 
     </p> 
    </xsl:for-each> 
    </section> 
+1

我也会使用AVT作为'name'属性:'

2011-05-16 19:34:51

+0

DevNull,非常感谢!你的答案适合我! – misho 2011-05-17 07:15:28