Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. <!--Select by node and group by child node-->
  2. <xsl:when test="$from='node-childnode'">
  3. <xsl:for-each-group select="$compose//*[name()=$sel]" group-by="child::*[name()=$group]">
  4. <xsl:sort select="current-grouping-key()" />
  5. <element key="{current-grouping-key()}">
  6. <xsl:if test="number(current-group()[1])=number(current-group()[1])">
  7. <xsl:attribute name="max" select="max(current-group())"/>
  8. <xsl:attribute name="sum" select="sum(current-group())"/>
  9. </xsl:if>
  10. <xsl:copy-of select="current-group()[1]"/>
  11. </element>
  12. </xsl:for-each-group>
  13. </xsl:when>
  14.  
  15. <xsl:variable name="oSel">
  16. <xsl:choose>
  17. <xsl:when test="starts-with($from,'oclass-')">
  18. <xsl:value-of select="$compose//*[contains(@outputclass,$sel)]"/>
  19. </xsl:when>
  20. <xsl:when test="starts-with($from,'node-')">
  21. <xsl:value-of select="$compose//*[name()=$sel]"/>
  22. </xsl:when>
  23. <xsl:otherwise/>
  24. </xsl:choose>
  25. </xsl:variable>
  26.  
  27. <xsl:variable name="oGroup">
  28. <xsl:choose>
  29. <xsl:when test="ends-with($from,'-attribute')">
  30. <xsl:value-of select="*/@*[local-name()=$group]"/>
  31. </xsl:when>
  32. <xsl:when test="ends-with($from,'-childnode')">
  33. <xsl:value-of select="*/*[name()=$group]"/>
  34. </xsl:when>
  35. <xsl:when test="ends-with($from,'-parentnode')">
  36. <xsl:value-of select="parent::*[name()=$group]"/>
  37. </xsl:when>
  38. <xsl:when test="ends-with($from,'-followingnode')">
  39. <xsl:value-of select="following-sibling::*[name()=$group][1]"/>
  40. </xsl:when>
  41. <xsl:when test="ends-with($from,'-precedingnode')">
  42. <xsl:value-of select="preceding-sibling::*[name()=$group][1]"/>
  43. </xsl:when>
  44. <xsl:otherwise/>
  45. </xsl:choose>
  46. </xsl:variable>
  47.  
  48. <xsl:variable name="test">
  49. <!--<xsl:for-each-group select="saxon:evaluate($oSel)" group-by="saxon:evaluate($oGroup)">-->
  50. <xsl:for-each-group select="saxon:evaluate($oSel)" group-by="saxon:evaluate($oGroup)">
  51. <element key="{current-grouping-key()}">
  52. <xsl:if test="number(current-group()[1])=number(current-group()[1])">
  53. <xsl:attribute name="max" select="max(current-group())"/>
  54. <xsl:attribute name="sum" select="sum(current-group())"/>
  55. </xsl:if>
  56. <xsl:copy-of select="current-group()[1]"/>
  57. </element>
  58. </xsl:for-each-group>
  59. </xsl:variable>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement