Html,xslt et xml lire les donnees d'un xml pour affichage sous forme de tableau grace a un script xslt en local

Description

Je ne sais pas si ma source est en bonne place (se serait plustôt une astuce).
Les fichiers XML prennent de plus en plus d'importance sur le web par leur façon de présenter les données sous forme structurée mais aussi permettant un chargement rapide par certaines applications.

Le principe :

On se propose de lire les données issues d'un fichier XML sous forme de noeuds et de les afficher dans une page HTML sous forme de tableau.
Pour cela on utilise un script XSLT dans la page html et on ne touche pas au XML (ce qui est très pratique lorsqu'on a plusieurs milliers de fichiers XML produits par une base de données par exemple).

Source / Exemple :


script language="JavaScript">
AfficheDocXML();
function AfficheDocXML(){

var Document;
Document = new ActiveXObject("Microsoft.XMLDOM");// on fait appel à la DOM pour parser le XML !
Document.async = "false"; // on lit en synchrone

if(Document.load("catalogue.xml")){// au chargement on met en forme puis on place dans les cellules
                                  document.write("<TABLE BORDER=1 CELLPADDING=0>");
                                  document.write("<THEAD><TH>ID</TH><TH>Date</TH><TH>Nom</TH></THEAD>");
for(i=0;i<Document.documentElement.childNodes.length;i++){
                                                          document.write ("<TR ALIGN=center>");
                                                          for(j=0;j<= 2;j++){
                                                                             document.write ("<TD>");
                                                                             document.write (Document.documentElement.childNodes(i).childNodes(j).text);
                                                                             document.write ("</TD>");
                                                                             }
                                                          document.write ("</TR>");
                                                         }
                                  document.write ("</TABLE>"); 
                                }else{alert("fichier pas trouvé !");// si pas de fichier, alerte !
								}
}								
</script>

Conclusion :


Bien entendu, si vous avez un fichier XML important, il y aura un temps de chargement non négligeable !
Pour diminuer ce temps de chargement, passee les noeuds sous forme d'attributs de cette forme :

<Commandes>
<Ordre
id ="1"
date="4/12/2002"
name = "hélène Marqué"/>

<Ordre
id ="2"
date="4/12/2002"
name = "Jean Bonbeurre"/>

</Commandes>

Il faudra réécrire le script pour lire les attributs des noeuds (of course).
Cette façon de coder le XML vous permettra outre un gain de place sur le fichier XML, un temps de chargement augmenté de 25%

Si un codeur C++ ou Delphi pouvait offrir une source permettant en 1 clic de réaliser cette transformation des noeuds enfants en attributs des noeuds parents, ce serait un réel outil en local !!!
Je vois ce prog un peu comme un batch qui scann les fichiers XML d'un dossier pour en faire l'inventaire dans un fichier result.xml par exemple.
Qui à l'ouverture de chaque fichiers XML du répertoire, regarderait si l'encodage est bien UTF-8 (auquel cas il remplacerait cette 1ère ligne par le codage UTF-8) puis circulerait sur tous les noeuds parents de 1er niveau pour transformer les noeuds enfants en attributs du noeuds parents !!!

Je pense que ce serait une super bonne source utile (un .exe, un clic et zooooouuuu).

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.