How to use for each group in XSL

后端 未结 1 1362
醉酒成梦
醉酒成梦 2020-12-06 06:03

im still learning for-each-group what is the best way of grouping something like this using XSL?(by country) i\'m trying to use XSL to convert this XML to anoth

相关标签:
1条回答
  • 2020-12-06 06:35

    If you group by country you would start with e.g.

    <xsl:template match="Person">
      <xsl:for-each-group select="Student/Info" group-by="@Country">
        <country name="{current-grouping-key()}">
    
        </country>
      </xsl:for-each-group>
    </xsl:template>
    

    Then you have to decide whether you want to further group the Info elements in each country group, for instance by name:

    <xsl:template match="Person">
      <xsl:for-each-group select="Student/Info" group-by="@Country">
        <country name="{current-grouping-key()}">
          <xsl:for-each-group select="current-group()" group-by="@Name">
            <student name="{current-grouping-key()}">
              <classes>
                <xsl:for-each select="current-group()">
                  <class><xsl:value-of select="@Class"/></class>
                </xsl:for-each>
              </classes>
            </student>
          </xsl:for-each-group>
        </country>
      </xsl:for-each-group>
    </xsl:template>
    
    0 讨论(0)
提交回复
热议问题