procesy5_config.default_db.xsl 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. version="2.0">
  6. <xsl:output indent="yes"/>
  7. <xsl:strip-space elements="*"/>
  8. <xsl:param name="procesy5_config.default_db.properties"/>
  9. <xsl:template match="procesy5_config">
  10. <procesy5_config>
  11. <xsl:apply-templates/>
  12. </procesy5_config>
  13. </xsl:template>
  14. <xsl:template match="procesy5_config.default_db.server">
  15. <procesy5_config.default_db.server>
  16. <xsl:variable name="procesy5_config.default_db.server">
  17. <xsl:apply-templates/>
  18. </xsl:variable>
  19. <xsl:apply-templates select="$procesy5_config.default_db.server" mode="from_tokenize"/>
  20. <!--<debug>
  21. <xsl:copy-of select="$procesy5_config.default_db.server"></xsl:copy-of>
  22. </debug>-->
  23. </procesy5_config.default_db.server>
  24. </xsl:template>
  25. <xsl:template match="*"/>
  26. <xsl:template match="text()">
  27. <xsl:for-each select="tokenize(.,'\[')">
  28. <lev1><xsl:attribute name="pos" select="position()"/>
  29. <xsl:for-each select="tokenize(.,'\]')">
  30. <lev2><xsl:attribute name="pos" select="position()"/>
  31. <xsl:for-each select="tokenize(.,'\n')">
  32. <levbr><xsl:attribute name="pos" select="position()"/>
  33. <xsl:for-each select=" tokenize(.,'=')">
  34. <lev3><xsl:attribute name="pos" select="position()"/>
  35. <xsl:value-of select="."/>
  36. </lev3>
  37. </xsl:for-each>
  38. </levbr>
  39. </xsl:for-each>
  40. </lev2>
  41. </xsl:for-each>
  42. </lev1>
  43. </xsl:for-each>
  44. </xsl:template>
  45. <xsl:template mode="from_tokenize" match="lev1[@pos='1']">
  46. <xsl:apply-templates mode="#current"/>
  47. </xsl:template>
  48. <xsl:template mode="from_tokenize" match="lev2[@pos='1']">
  49. <xsl:apply-templates mode="#current"/>
  50. </xsl:template>
  51. <xsl:template mode="from_tokenize" match="levbr[lev3[@pos='2']]"><!-- [lev3/@pos2] -->
  52. <xsl:element name="{lev3[@pos='1']}">
  53. <xsl:value-of select="replace(lev3[@pos='2'],'&quot;','')"/>
  54. </xsl:element>
  55. </xsl:template>
  56. <xsl:template mode="from_tokenize" match="*">
  57. <!--<ignored>
  58. <xsl:attribute name="name" select="name()"/>
  59. <attrs>
  60. <xsl:copy-of select="@*"/>
  61. </attrs>
  62. </ignored>-->
  63. </xsl:template>
  64. <!--<xsl:template mode="from_tokenize" match="lev1[@pos='1']"/>
  65. <xsl:template mode="from_tokenize" match="lev1">
  66. <xsl:element name="{lev2[@pos='1']/levbr[@pos='1']/lev3[@pos='1']/text()}">
  67. <xsl:for-each select="lev2[ number(@pos) &gt; 1]">
  68. <xsl:for-each select="levbr[number(@pos) &gt;1]">
  69. <xsl:for-each select="lev3">
  70. <xsl:if test="@pos div 2 mod 1 and not(contains(.,';'))">
  71. <xsl:element name="{text()}">
  72. <xsl:value-of select=" replace( normalize-space(../lev3[@pos= number(current()/@pos)+1]),'[&quot;;]','')"/>
  73. </xsl:element>
  74. </xsl:if>
  75. </xsl:for-each>
  76. </xsl:for-each>
  77. </xsl:for-each>
  78. </xsl:element>
  79. </xsl:template> -->
  80. </xsl:stylesheet>