Formulaire Perl/CGI générant du XML

Formulaire Perl/CGI générant du XML - Perl - Programmation

Marsh Posté le 20-07-2006 à 15:18:31    

Bonjour,
 
Je me permets de solliciter votre aide et vos avis.
Je dois faire un projet qui me facilite la saisie des stratégies de sauvegarde car actuellement, je le fais manuellement sous Excel. Ayant l'habitude de faire des formulaires sous PHP avec une base MySQL, on m'a imposé de faire ce projet en Perl/CGI générant un fichier XML comme résultat (je n'ai aucune connaissance de base sur ces derniers langages).  
Donc l'outil que je veux développer, il y a un formulaire pour saisir un nouveau serveur avec sa stratégie. Le résultat de la saisie va générer un fichier XML, il peut être consulter (donc je dois le parser) et il peut aussi être mis-à-jour.
On m'a conseillé l'API XML::Twig avec le tutorial http://xmltwig.com/ mais je ne comprends pas grand chose.
Pensez-vous qu'il est possible, à l'aide d'un formulaire, d'arriver à générer ce résultat ?
 

Code :
  1. <?xml version="1.0"?>
  2. <tinaBackup>
  3. <host>
  4. <name>freo056s</name>
  5. <catalog>cat_freo056s</catalog>
  6. <pool>
  7. <daily>
  8. <quot1>AJ1245L1</quot1>
  9. <quot2>AJ5689L1</quot2>
  10. </daily>
  11. <weekly>
  12. <h1>
  13. <hebd11>AJ2356L1</hebd11>
  14. <hebd12>AJ1478L1</hebd12>
  15. </h1>
  16. <h2>
  17. <hebd21>AJ8521L1</hebd21>
  18. <hebd22>AJ0210L1</hebd22>
  19. </h2>
  20. <h3>
  21. <hebd31>AJ6589L1</hebd31>
  22. <hebd32>AJ0001L1</hebd32>
  23. </h3>
  24. <h4>
  25. <hebd41>AJ5555L1</hebd41>
  26. <hebd42>AJ5210L1</hebd42>
  27. </h4>
  28. <h5>
  29. <hebd51>AJ7896L1</hebd51>
  30. <hebd52>AJ6987L1</hebd52>
  31. </h5>
  32. </weekly>
  33. <monthly>
  34. <m1>
  35. <mens11>AJ1020L1</mens11>
  36. <mens12>AJ0314L1</mens12>
  37. </m1>
  38. <m2>
  39. <mens21>AJ9632L1</mens21>
  40. <mens22>AJ4102L1</mens22>
  41. </m2>
  42. <m3>
  43. <mens31>AJ5541L1</mens31>
  44. <mens32>AJ4413L1</mens32>
  45. </m3>
  46. </monthly>
  47. <annually>
  48. <year1>AJ1548L1</year1>
  49. <year2>AJ1948L1</year2>
  50. </annually>
  51. <manually>
  52. <test1>AJ4613L1</test1>
  53. <test2>AJ0274L1</test2>
  54. </manually>
  55. <spare>
  56. <spare1>AJ4652L1</spare1>
  57. <spare2>AJ2580L1</spare2>
  58. </spare>
  59. </pool>
  60. <calendar>
  61. <year>2006</year>
  62. <weeks>
  63. <w1>H1</w1>
  64. <w2>H2</w2>
  65. <w3>H3</w3>
  66. <w4>H4</w4>
  67. <w5>H5</w5>
  68. </weeks>
  69. </calendar>
  70. <comments></comments>
  71. </host>
  72. <host>
  73. <name>freo080s</name>
  74. <catalog>cat_freo080s</catalog>
  75. <pool>
  76. <daily>
  77. <quot1>AJ1201L1</quot1>
  78. <quot2>AJ1235L1</quot2>
  79. </daily>
  80. <weekly>
  81. <h1>
  82. <hebd11>AJ1515L1</hebd11>
  83. <hebd12>AJ1526L1</hebd12>
  84. </h1>
  85. <h2>
  86. <hebd21>AJ8495L1</hebd21>
  87. <hebd22>AJ3265L1</hebd22>
  88. </h2>
  89. <h3>
  90. <hebd31>AJ7894L1</hebd31>
  91. <hebd32>AJ8415L1</hebd32>
  92. </h3>
  93. <h4>
  94. <hebd41>AJ8412L1</hebd41>
  95. <hebd42>AJ8411L1</hebd42>
  96. </h4>
  97. <h5>
  98. <hebd51>AJ8451L1</hebd51>
  99. <hebd52>AJ2595L1</hebd52>
  100. </h5>
  101. </weekly>
  102. <monthly>
  103. <m1>
  104. <mens11>AJ4815L1</mens11>
  105. <mens12>AJ9632L1</mens12>
  106. </m1>
  107. <m2>
  108. <mens21>AJ4815L1</mens21>
  109. <mens22>AJ1202L1</mens22>
  110. </m2>
  111. <m3>
  112. <mens31>AJ1548L1</mens31>
  113. <mens32>AJ4859L1</mens32>
  114. </m3>
  115. </monthly>
  116. <annually>
  117. <year1>AJ1502L1</year1>
  118. <year2>AJ3625L1</year2>
  119. </annually>
  120. <manually>
  121. <test1>AJ4859L1</test1>
  122. <test2>AJ3625L1</test2>
  123. </manually>
  124. <spare>
  125. <spare1>AJ0214L1</spare1>
  126. <spare2>AJ9635L1</spare2>
  127. </spare>
  128. </pool>
  129. <calendar>
  130. <year>2006</year>
  131. <weeks>
  132. <w1>H1</w1>
  133. <w2>H2</w2>
  134. <w3>H3</w3>
  135. <w4>H4</w4>
  136. <w5>H5</w5>
  137. </weeks>
  138. </calendar>
  139. <comments></comments>
  140. </host>
  141. </tinaBackup>


 
J'ai fais moi même le fichier XML, n'ayant pas de connaissance, je ne sais pas s'il est valide ou pas.
Merci.
 
Henri

Reply

Marsh Posté le 20-07-2006 à 15:18:31   

Reply

Marsh Posté le 22-07-2006 à 13:08:44    

Salut,
 
Ca ne ressemble pas trop a ton arbre mais c'est une maniere plutot simple de faire ce que tu veux... enfin dans certaines limites.
 
 - Tu organises ton formulaire,
 - Tu remplis ta hash,
 - Et tu aura un truc proche de ce que tu veux...
 
 

Code :
  1. #!/usr/bin/perl -w
  2. use XML::Simple;
  3. use strict;
  4. my $hash = {
  5.  tinaBackup => {
  6.         host => {
  7.    name => 'freo056s',
  8.    catalog => 'cat_freo056s',
  9.    pool => {
  10.      daily => {
  11.         quot1 => 'AJ1245L1',
  12.         quot2 => 'AJ5689L1',
  13.        },
  14.      weekly => {
  15.          H1 => {
  16.          hebd11 => 'AJ2356L1',
  17.          hebd12 => 'AJ1245L1',
  18.         },
  19.        },
  20.     },
  21.          },
  22.   },
  23.  };
  24. print XMLout($hash,  KeepRoot => 1, NoAttr => 1);


Message édité par Danjer le 22-07-2006 à 13:12:18

---------------
Cdl, Danjer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed