biale_plamy_joins2ways_do_paths.xsl 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. exclude-result-prefixes="xs"
  5. xmlns:bp="https://procesy5.pl/biale_plamy-schema.xsd"
  6. version="2.0">
  7. <!--<xsl:param name=""></xsl:param>-->
  8. <xsl:output indent="yes"/>
  9. <xsl:strip-space elements="*"/>
  10. <!--example input
  11. <joins2ways>
  12. <item id="0">
  13. <item id="0">0</item>
  14. <item id="1">12135</item>
  15. <item id="2">29426</item>
  16. </item>
  17. <item id="1">
  18. <item id="0">0</item>
  19. <item id="1">1</item>
  20. <item id="2">24887</item>
  21. </item>
  22. </joins2ways>
  23. -->
  24. <xsl:template match="joins2ways_z_ID_Way">
  25. <xsl:variable name="EdgeWayJoinsPair_cand">
  26. <xsl:apply-templates mode="joins"/>
  27. </xsl:variable>
  28. <EdgeWayJoins>
  29. <xsl:for-each-group select="$EdgeWayJoinsPair_cand/EdgeWayJoinsPair_cand" group-by="@ID_Way">
  30. <EdgeWayJoinsPair>
  31. <xsl:attribute name="ID_Way" select="@ID_Way"/>
  32. <xsl:for-each select="current-group()">
  33. <bp:Joins>
  34. <xsl:attribute name="Joins" select="@joins"/>
  35. </bp:Joins>
  36. </xsl:for-each>
  37. </EdgeWayJoinsPair>
  38. </xsl:for-each-group>
  39. </EdgeWayJoins>
  40. </xsl:template>
  41. <xsl:template match="item" mode="joins">
  42. <xsl:choose>
  43. <xsl:when test="count(item)=1">
  44. <xsl:element name="EdgeWayJoinsPair_cand">
  45. <xsl:attribute name="joins" select="@id"/>
  46. <xsl:attribute name="ID_Way" select="@ID_Way"/>
  47. <xsl:attribute name="ways" select="item/text()"/>
  48. </xsl:element>
  49. </xsl:when>
  50. </xsl:choose>
  51. </xsl:template>
  52. </xsl:stylesheet>