Thierry Seunevel Thierry 
Seunevel 
 Code en stock       
  Accueil   Réalisations Code en stock Téléchargement Curriculum Contact
Accueil > Code en stock > HTML2XML

Génération XML à partir d'un document HTML (3)

. Principe
. Eléments et attributs
. Formulaires multiples
. Exemple complet
. Le code Javascript
Utilisation de formulaires multiples
Dans la réalité, les cas rencontrés sont généralement plus complexes. L'exemple suivant comporte un élément de contrôle, dont les données sont toutes prédéfinies.
Les données saisies dans un formulaire présenté dans un tableau doivent être réparties dans trois éléments, dont deux portent le même nom, et qui comportent des sous-éléments et des attributs.

Formulaire HTML
Exemple 3 Date De (Ville) A (Ville)
Nbre passagers Adultes Enfants Aller
Retour

XML à générer
<?xml version='1.0'?>
<REQUETE>
 <DEMANDE_DISPO>
  <ENTETE CDCLI="987654" IDSRVR="1" VERSION="V5.2.0" DEVRQ="EUR" LANGRQ="FR" IDRQ="DDISPO"/>
  <NBR_PASSAGERS PASSAD="2"/>
  <ITINERAIRE CODAR="ALLER" DATED="180903">
   <CDVILD>PARIS</CDVILD>
   <CDVILA>TUNIS</CDVILA>
  </ITINERAIRE>
  <ITINERAIRE CODAR="RETOUR" DATED="250903">
   <CDVILD>TUNIS</CDVILD>
   <CDVILA>PARIS</CDVILA>
  </ITINERAIRE>
 </DEMANDE_DISPO>
</REQUETE>

Source HTML







1


2

















3













4



5







5
<html>
<head>
<!-- Page HTML Génération XML exemple 3 -->
<!-- Auteur : Thierry SEUNEVEL - 16/08/2003 -->
<Script src="computeForms.js"></Script>
<title>Génération XML exemple 3</title>
</head>
<Form name="_PARAMETRES">
<input type="Hidden" name="XMLVersion" value="?xml version='1.0'?">
<input type="Hidden" name="ELEMENT" value="REQUETE">
<input type="Hidden" name="ELEMENT" value="DEMANDE_DISPO">
</Form>
<Form name="ENTETE">
<input type="Hidden" name="@CDCLI" value="987654">
<input type="Hidden" name="@IDSRVR" value="1">
<input type="Hidden" name="@VERSION" value="V5.2.0">
<input type="Hidden" name="@DEVRQ" value="EUR">
<input type="Hidden" name="@LANGRQ" value="FR">
<input type="Hidden" name="@IDRQ" value="DDISPO">
</Form>
<table width="100" border="1" cellpadding="1" cellspacing="1">
<tr >
<td align="center" colspan="4"><strong >Exemple 3</strong></td>
<td align="center" bgcolor="silver">Date</td>
<td align="center" bgcolor="silver">De (Ville)</td>
<td align="center" bgcolor="silver">A (Ville)</td>
</tr>
<tr >
<td rowspan="2">Nbre passagers</td>
<td bgcolor="silver" align="center">Adultes</td>
<td bgcolor="silver" align="center">Enfants</td>
<td bgcolor="silver" align="center">Aller</td>
<form name="_SAISIE">
<td ><input type="text" name="DATED"></td>
<td ><input type="text" name="VILLEAD" ></td>
<td ><input type="text" name="VILLEAA" ></td>
</tr>
<tr >
<td align="center"><input type="text" name="NBAD"></td>
<td align="center"><input type="text" name="NBEN"></td>
<td bgcolor="silver" align="center">Retour</td>
<td ><input type="text" name="DATER" ></td>
<td ><input type="text" name="VILLERD" ></td>
<td ><input type="text" name="VILLERA" ></td>
</tr>
</table>
</form>
<Form name="NBR_PASSAGERS">
<input type="hidden" name="@PASSAD"
    value="?document._SAISIE.NBAD.value">
<input type="hidden" name="@PASSEN"
    value="?document._SAISIE.NBEN.value">
</form>
<Form name="ITINERAIRE__A">
<input type="hidden" name="@CODAR" value="ALLER">
<input type="hidden" name="@DATED"
    value="?document._SAISIE.DATED.value">
<input type="hidden" name="CDVILD"
    value="?document._SAISIE.VILLEAD.value">
<input type="hidden" name="CDVILA"
    value="?document._SAISIE.VILLEAA.value">
</form>
<Form name="ITINERAIRE__R">
<input type="hidden" name="@CODAR" value="RETOUR">
<input type="Hidden" name="@DATED"
    value="?document._SAISIE.DATER.value">
<input type="Hidden" name="CDVILD"
    value="?document._SAISIE.VILLERD.value">
<input type="Hidden" name="CDVILA"
    value="?document._SAISIE.VILLERA.value">
</form>
<Form name="_FormFin">
<input type="Button" name="_FormFin" value="Execute" onclick="computeXML()"/><BR>
</form>
</body>
</html>

  1. Comme précédemment, le formulaire _PARAMETRES permet de générer les éléments XML externes.

  2. L'élément XML ENTETE qui comporte une série d'attributs dont les valeurs sont constantes est généré en créant le formulaire de même nom, dont tous les champs sont de type HIDDEN et préfixés par @ pour générer des attributs.

  3. La table comportant les champs de saisie englobe un formulaire nommé _SAISIE. La présence du caractère souligné en début du nom évite qu'il soit traité par le script de conversion. Les valeurs saisies dans les différents champs du formulaire, (DATED, VILLEAD, VILLEAA ...) pourront être utilisées dans la suite de la conversion.

  4. L'élément NBR_PASSAGERS doit comporter en attributs les nombres d'adultes et d'enfants saisis dans les champs NBAD et NBEN du formulaire _SAISIE.
    On crée un formulaire du nom de l'élément cible (NBR_PASSAGERS), comportant deux champs d'entrée de type Hidden, et dont la valeur est fixée par une formule du type
    ?<expression Javascript>.
    La présence du caractère ? en première position de la valeur indique au script de conversion d'évaluer l'expression qui suit (instruction Javascript eval).
    Ici l'expression à évaluer retourne la valeur du champ NBAD du formulaire _SAISIE du document courant : document._SAISIE.NBAD.value

  5. Le XML doit comporter deux éléments ITINERAIRE distingués par un attribut CODAR pouvant être égal à ALLER ou RETOUR.
    On créé donc deux formulaires nommés ITINERAIRE__A et ITINERAIRE__B. Le script de génération ne tient pas compte des caractères à partir de 2 soulignements. On peut ainsi générer plusieurs éléments de même nom tout en conservant un moyen de les distinguer dans le script.
    Les autres éléments de ces formulaires ne comportent rien de nouveau par rapport à ce qui précède.
    Haut de page  Haut de page  Précédent  Eléments et attributs | Exemple complet  Suivant


©  Thierry Seunevel (2004) www.seusoft.com