Ecriture d'un XSL

Ecriture d'un XSL - XML/XSL - Programmation

Marsh Posté le 07-08-2008 à 12:49:12    

je sais vraiment pas comment faire
 
Voici le XML de départ

Code :
  1. <mapping>
  2.     <hosting>
  3.         <URL>ou=hosting-dev,dc=technhom,dc=com</URL>
  4.         <exemplecom>
  5.             <URL>virtualdomain=exemple.com</URL>
  6.             <DHCP>
  7.                 <URL>ou=dhcp</URL>
  8.                 <GET>AdminMod,AdminEnt</GET>
  9.                 <PUT>AdminMod</PUT>
  10.            </DHCP>
  11.            <DNS>
  12.                 <URL>ou=dns</URL>
  13.            </DNS>
  14.            <MAIL>
  15.                <URL>ou=mail</URL>
  16.                <GET>AdminMod,AdminEnt</GET>
  17.                <POST>AdminMod</POST>
  18.            </MAIL>
  19.         </exemplecom>
  20.         <entreprise1technhomcom>
  21.             <URL>virtualdomain=entreprise1.technhom.com</URL>
  22.             <DHCP>
  23.                 <URL>ou=dhcp</URL>
  24.                 <GET>AdminMod,AdminEnt</GET>
  25.                 <PUT>AdminMod</PUT>
  26.             </DHCP>
  27.             <DNS>
  28.                 <URL>ou=dns</URL>
  29.             </DNS>
  30.             <MAIL>
  31.                 <URL>ou=mail</URL>
  32.                 <GET>AdminMod,AdminEnt</GET>
  33.                 <POST>AdminMod</POST>
  34.             </MAIL>
  35.         </entreprise1technhomcom>
  36.     </hosting>
  37. </mapping>


 
 
j'aimerai transformer ce fichier en transmettant des arguments à un XSL.
Exemple:
 
si je transmets les arguments  
setParameter ( "Arg1" , "test.com" )
setParameter ( "Arg2" , "testcom" )
 
 
j'aimerai rajouter quelques balises au xml précédent
 

Code :
  1. <mapping>
  2.     <hosting>
  3.         <URL>ou=hosting-dev,dc=technhom,dc=com</URL>
  4.         <exemplecom>
  5.             <URL>virtualdomain=exemple.com</URL>
  6.             <DHCP>
  7.                 <URL>ou=dhcp</URL>
  8.                 <GET>AdminMod,AdminEnt</GET>
  9.                 <PUT>AdminMod</PUT>
  10.            </DHCP>
  11.            <DNS>
  12.                 <URL>ou=dns</URL>
  13.            </DNS>
  14.            <MAIL>
  15.                <URL>ou=mail</URL>
  16.                <GET>AdminMod,AdminEnt</GET>
  17.                <POST>AdminMod</POST>
  18.            </MAIL>
  19.         </exemplecom>
  20.         <entreprise1technhomcom>
  21.             <URL>virtualdomain=entreprise1.technhom.com</URL>
  22.             <DHCP>
  23.                 <URL>ou=dhcp</URL>
  24.                 <GET>AdminMod,AdminEnt</GET>
  25.                 <PUT>AdminMod</PUT>
  26.             </DHCP>
  27.             <DNS>
  28.                 <URL>ou=dns</URL>
  29.             </DNS>
  30.             <MAIL>
  31.                 <URL>ou=mail</URL>
  32.                 <GET>AdminMod,AdminEnt</GET>
  33.                 <POST>AdminMod</POST>
  34.             </MAIL>
  35.         </entreprise1technhomcom>
  36.         ///CE QUE je veux rajouter
  37.         <testcom>
  38.             <URL>virtualdomain=test.com</URL>
  39.             <DHCP>
  40.                 <URL>ou=dhcp</URL>
  41.                 <GET>AdminMod,AdminEnt</GET>
  42.                 <PUT>AdminMod</PUT>
  43.             </DHCP>
  44.             <DNS>
  45.                 <URL>ou=dns</URL>
  46.             </DNS>
  47.             <MAIL>
  48.                 <URL>ou=mail</URL>
  49.                 <GET>AdminMod,AdminEnt</GET>
  50.                 <POST>AdminMod</POST>
  51.             </MAIL>
  52.         </testcom>
  53.     </hosting>
  54. </mapping>


 
 
Je n'arrive pas à écrire le xsl qui permet de faire ça...
Est ce que vous pouvez m'aider?


Message édité par yoshi42 le 07-08-2008 à 12:51:35
Reply

Marsh Posté le 07-08-2008 à 12:49:12   

Reply

Marsh Posté le 07-08-2008 à 17:17:14    

apparemment d'apres ce site http://www.commentcamarche.net/xml/xmlxsl.php3
on peut modifier un xml grâce à un xsl:
"L'arbre source peut être entièrement remodelé et filtré ainsi qu'ajouter du contenu à l'arbre résultat, si bien que l'arbre résultat peut être radicalement différent de l'arbre source."...Ce que je veux faire doit donc être possible mais je ne sais pas comment faire

Reply

Marsh Posté le 07-08-2008 à 18:22:08    

Quand tu dis "en transmettant des arguments", t'entends quoi?  
Tu as un script dans un autre langage qui rajoute/enlève ces lignes dans le fichier XSL ou c'est un truc fait à la main de temps en temps?

Reply

Marsh Posté le 07-08-2008 à 19:16:53    

esox_ch a écrit :

Quand tu dis "en transmettant des arguments", t'entends quoi?  
Tu as un script dans un autre langage qui rajoute/enlève ces lignes dans le fichier XSL ou c'est un truc fait à la main de temps en temps?


 
c'est fait à la main de temps en temps
 
En fait pour tout vous dire je passe par des fichiers XSL et non par des API qui permettent la modification de fichier XML car il faut que les administrateurs du site n'est pas à se plonger dans le code du site s' ils veulent modifier la manière dont sera modifié le XML (Ils auront juste à agir sur le XSL car les paramètres envoyés ne doivent pas changer )
 
 
Je ne suis pas certain que ce que je cherche à faire soit faisable. Je ne connais que très peu XSL.
 
 
Je transmet 2 variables au fichier XSL ensuite j'aimerai qu'il  rajoute une portion au document XML initial.
juste apres la balise hosting j'aimerai qu'il me rajoute une balise fille dont le nom = valeur variable virtualdomainURI ({$virtualdomainURI}). puis dans la première balise URL il me remplace ({$virtualdomain}) par la valeur de la variable correspondante
 

Code :
  1. <xsl:variable name="virtualdomainURI"/>
  2. <xsl:variable name="virtualdomain"/>
  3. <xsl:template match="hosting">
  4. //la je veux rajouter tout ce qui suit
  5.     <{$virtualdomainURI}>
  6.         <URL>virtualdomain={$virtualdomain}</URL>
  7.         <DHCP>
  8.             <URL>ou=dhcp</URL>
  9.             <GET>AdminMod,AdminEnt</GET>
  10.             <PUT>AdminMod</PUT>
  11.          </DHCP>
  12.          <DNS>
  13.              <URL>ou=dns</URL>
  14.          </DNS>
  15.          <MAIL>
  16.              <URL>ou=mail</URL>
  17.              <GET>AdminMod,AdminEnt</GET>
  18.              <POST>AdminMod</POST>
  19.          </MAIL>
  20.     </{$virtualdomainURI}>
  21. </xsl:template>
  22. </xsl:stylesheet>


 
je sais bien que ce code n'est pas bon... C'est juste pour tenter d'expliquer ce que je veux faire.
Est ce que vous avez des idées?
 
ps: j'espère quand même que rajouter quelques lignes à un fichier xml à l'aide d'un fichier xsl c'est faisable..sinon je comprends pas l'intérêt de xsl à part pour faire des sorties html

Reply

Marsh Posté le 07-08-2008 à 22:58:26    

Pourquoi {$truc} e pas $truc?
Donc à mon avis  (pas testé cependant)

Code :
  1. <xsl:element name=$virtualdomainURI>
  2. <URL><xsl:value-of select=$virtualdomain /></URL>
  3. ...
  4. </xsl:element>
 

Edit : http://www.w3schools.com/xsl/el_element.asp :o


Message édité par esox_ch le 07-08-2008 à 22:59:14
Reply

Sujets relatifs:

Leave a Replay

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