procesy5_config.default_db.xsl 3.6 KB

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