Thierry Seunevel Thierry 
Seunevel 
 Code en stock       
  Accueil   Réalisations Code en stock Téléchargement Curriculum Contact
Accueil > Code en stock > HTML2XML Version US
Génération de XML à partir d'un document HTML

Les feuilles de style XSL permettent de convertir des documents XML en HTML.
Si on souhaite générer une requête XML à partir d'un formulaire HTML, il faut développer une fonction spécialisée.
Le script décrit dans cet article propose une solution standardisée permettant de répondre à ce besoin dans bon nombre de cas.
. Principe
. Eléments et attributs
. Formulaires multiples
. Exemple complet
. Le code Javascript
Principe
Le principe est d'utiliser les noms d'éléments FORM et INPUT du document source HTML comme noms d'éléments XML. Le script parcourt les différents champs définis dans les différents formulaires, et construit le XML. Les formulaires et les champs dont le nom commence par le caractère souligné (_) sont ignorés. Un premier exemple trés simple est représenté ci-dessous :

Formulaire HTML XML généré
Exemple 1
Nombre passagers AdultesEnfants
Dates Aller Retour
Villes Départ Arrivée
<?xml version='1.0'?>
<REQUETE>
<DEMANDE_DISPO>
<DISPONIBILITE>
<NBPASSADLT>2</NBPASSADLT>
<NBPASSENFT>1</NBPASSENFT>
<DATE_ALLER>170703</DATE_ALLER>
<DATE_RETOUR>240703</DATE_RETOUR>
<VILLE_DEP>PARIS</VILLE_DEP>
<VILLE_ARRIVEE>TUNIS</VILLE_ARRIVEE>
</DISPONIBILITE>
</DEMANDE_DISPO>
</REQUETE>


Source HTML correspondante










1





2























3
<html>
<head>
<!-- Page HTML exemple 1 pour routines computeForms -->
<!-- Auteur : Thierry SEUNEVEL - 12/07/2003 -->
<Script src="computeForms.js"></Script>
<title>Simulateur de requete XML demande de dispo</title>
</head>
<body >
<!-- formulaire contenant paramètres necessaires a la constitution du document XML -->
<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>
<Table width = "400" border=1 cellpadding=1 cellspacing=1>
<!-- Formulaire affiché et dans lequel les données sont saisies -->
<Form name="DISPONIBILITE">
<tr><td colspan="3" align="center"><strong >Exemple 1</strong></td></tr>
<tr align="center" ><td rowspan="2" >Nombre passagers</td>
<td bgcolor="Silver">Adultes</td>
<td bgcolor="Silver">Enfants</td></tr>
<tr align="center" >
<td ><input name="NBPASSADLT" size="5" value="2"/></td>
<td ><input name="NBPASSENFT" size="5" value="1"/></td></tr>
<tr align="center" >
<td rowspan="2" >Dates</td>
<td bgcolor="Silver">Aller</td>
<td bgcolor="Silver">Retour</td></tr>
<tr align="center" >
<td ><input name="DATE_ALLER" size="10" value="170703"/></td>
<td ><input name="DATE_RETOUR" size="10" value="240703"/></td></tr>
<tr align="center" >
<td rowspan="2" >Villes</td>
<td bgcolor="Silver">Départ</td>
<td bgcolor="Silver">Arrivée</td></tr>
<tr align="center" >
<td ><input name="VILLE_DEP" size="10" value="PARIS"/></td>
<td ><input name="VILLE_ARRIVEE" size="10" value="TUNIS"/></td></tr>
</form>
</table>
<!-- Formulaire reel destiné à envoyer les données saisies -->
<Form name="_FormFin">
<input type="Button" name="_FormFin" value="Execute" onclick="computeXML()"/>
<textarea name="xml" rows="10" cols="80"></textarea>
</form>
</body>
</html>


  1. Le script extrait les informations d'en-tête et les premiers niveaux d'éléments d'un formulaire nommé _PARAMETRES. Les formulaires dont le nom commence par un souligné (_) ne sont pas traités par le script pour générer le corps du document XML.
    Le formulaire _PARAMETRES ainsi que les champs XMLVersion et ELEMENT sont utilisés conventionnellement par le script pour stocker les informations correspondantes.
    Les champs étant de type HIDDEN, ce formulaire n'est pas affiché.

  2. Le formulaire nommé DISPONIBILITE est transformé en élément de même nom, et chacun des champs qu'il contient (NBPASSADLT, NBPASSENFT ...)devient un sous-élément.

  3. Le formulaire _FormFin est le seul formulaire exécutable de la page. C'est lui qui va permettre de traiter la requête de l'utilisateur. Ici, comme dans les autres exemples présentés, l'action exécute le script de conversion et affiche le résultat dans un champ de type TEXTAREA
    Haut de page  Haut de page    | Eléments et attributs Suivant


©  Thierry Seunevel (2004) www.seusoft.com