bonjour comment on peut faire un appel a un xml avec javascript, l'afficher et le parcourir. merci Smiley smile
Bonjour Croco

Oui c'est possible.
Tout dépend de ce que tu veux faire.
Un fichier javascript peut assurer la liaison entre un fichier XML et une feuille de style XSL. Cela sert notamment à afficher les résultats d'une requête générée par un formulaire HTML Une fonction javascript sert d'intermédiaire et transmet les arguments de la requête sous forme de paramètres au fichier XSL (xsl:param) qui parcours le doc XML et renvoi le résultat des éléments qui répondent aux conditions des paramtrèes.
J'applique cette méthode pour parcourir un arbre généalogique, un dictionnaire etc...
Je peux détailler la méthode si tu le désires.
Bonjour Rimoursky
merci d'avoir répondu s'a ma fait vraiment plaisir Smiley lol
enfaîte, mon travaille consiste faire des modification dans un fichier XML (modification des balises elle même par exemple on a une balise <croco>...</croco> et on le modifie par <rimoursky>..</rimoursky> et l'enregistrer dans une autre fichier XML) j'ai déja fait une interface html pour simplifier le changement...mais il me reste un problème de chargement de XML et enregistrer l'autre ficher XML aprés le changement...merci Smiley langue
Veux-tu créer et enregistrer un nouveau fichier XML à partir d'un fichier XML ? Dans ce cas il s'agit de manipuler un fichier texte. Si c'est cela le mieux et d'utiliser php plutôt que javascript.
ah bon Smiley ohwell
vous avez pas un code comme exemple s'il vous plait Smiley sweatdrop j'ai passé toute la semaine a faire des recherche mais tellement il y'a beaucoup de chose et la plus par ne fonctionne pas s'a ma vraiment soûlé...
Exposes ton problème avec plus de précision : quel est le fichier XML d'origine (quelques éléments suffisent) , quel est exactement le résulltat souhaité : afficher la transformation uniquement ou créeer un nouveau fichier et l'enregistrer, pour s'en servir après ?
Précisions

Je reviens sur la formulation initiale de ta demande.

Il existe plusieurs méthodes pour accéder aux éléments (et attributs) d'un fichier XML et pour les afficher. La méthode fondée sur HTML et DOM (document object model) utilise javascript pour accéder au contenu et HTML l'afficher.
J'ai pris l'exemple simplissime d'un carneet d'adresse, car xml est tout à fait adapté pour le modéliser.

Exemple de fichier XML
nom du fichier : carnet.xml le fichier est le suivant, tu peux le compléter ou appliquer à tout autre fichier décrivant un contenu hiérarchisé.
Attention ! le fichier doit être symétrique, tous les éléments doivent être présents même s'il sont vides.
<?xml version="1.0" encoding="iso-8859-1"?>
<carnet_adresse>
<adresse>
<nom>dupont</nom>
<prenom>jules</prenom>
<voie>rue des platanes</voie>
<numero>34</numero>
<localité>Saint Machin</localité>
<code_postal>56789</code_postal>
</adresse>
<adresse>
<!--etc............-->


</adresse>
<!--..................-->
</carnet_adresse>



La méthode DOM (utilisant javascript) et testée avec IE 6 et suivantes.
Pour cela il faut créer un fichier HTML, par exemple carnet.html (ou index.html)


<html>
<head>
<script language="javascript" for="window" event="onload">
Document=carnetAdresse.XMLDocument;
nom.innerText=Document.documentElement.childNodes[0].text;
prenom.innerText=Document.documentElement.childNodes[1]).text;
voie.innerText=Document.documentElement.childNodes[2].text;
numero.innerText=Document.documentElement.childNodes[3].text;
/*............etc ...........*/
/* remarquer qu'il y a correspondance entre les noeuds (childnodes[i]) et les éléments du document XML */
</script>

</head>
<body>
<xml id="carnetAdresse" src="carnet.xml"></xml>
<!---les éléments sont affichés ensuite -->
Nom : <span id="nom" style="font-weight:bold"></span><br />
Prénom : <span id="prenom" style="...................."></span><br />
<!-- Noter que la valeur de l'attribut [i]id=[/i] est égale au nom de l'élément du doc [i]carnet.xml[/i] dont on affiche le contenu. -->
etc.........

</body>
</html>


C'est une méthode. A mon avis l'utilisation de XSL est beaucoup plus puissante et cohérente avec le parti pris XML, elle s'applique à tous les types de fichiers XML, symétriques ou pas, éléments manquant, vide ou pas, la présentation du résultat peut être complétée par des feuilles de styles CSS, les possibilités d'extension sont infinies. Compatible avec tous les navigateurs récents (IE 6 et suivants, FF, Opera, Safari, FF etc...)

Pour cela, créer le fichier carnet.xsl destiné à remplacer le fichier carnet.html, ce fichier .xsl inclut une séquence HTML classique qui assure la publication du contenu à l'écran, le code est le suivant :

<?xsml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0"/>
<!--Ces 3 premières lignes sont obligatoires, la valeur de l'attribute [i]encoding[/i] peut égale à utf-8 suivant le codage du texte utilisé-->
<!--l'élement xsl:stylesheet peut être complété-->
<xsl:template match="/">
<html>
<body>
<:--La boucle [i]for:each[/i] parcourt le document et affiche le nom des éléments séléectionnés-->
<!--Noter que l'on aurait pu choisir la méthode des [i]templates[/i] et matcher ( = appliquer le modèle -template- en jargon xml) chaque élément séparément-->
<xsl:for-each select="carnet_adresse/adresse>
Nom : <xsl:value-of select="nom"/><br />
Prénom : <xsl:value-of select="prenom"/><br />
<!--etc.......................-->
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


Méthode des templates


<!--.....................-->
<xsl:template match="carnet_adresse">
<html>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="nom">
<!--imposer ici les éléments de style (attention à la manière d'imposer les attributs exemple :
<!--(<span><xsl:attibute name="class">valeur de la classe</xsl:attribute>...introduire ici <xsl:value-of select= />....</span>)-->
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="prenom">

<xsl:value-of select="."/>
</xsl:template>
<!--..............etc...................-->



Pour afficher le contenu du document carnet_adresse, il faut simplement ajouter dans l'entête du fichier carnet.xml la ligne suivante: sous la 1ere ligne,
<?xml-stylesheet type="text/xsl" href="carnet.xsl"?>


Pour le reste : un certain nombre de méthodes parmi les plus utilisées sont décrites dans l'ouvrage de Michael J. Young "Formation à XML", Microsoft Press.
en commande à la Fnac ou sur eBay certainement. Le bouquin est en français, très clair et très complet, tu trouveras certainement beaucoup de conseils et des tas d'exemples faciles à reproduire. (Pas cher en poche ~11 euros)

A ta disposition pour plus de précisions.[/i]
Modifié par rimousky (10 Mar 2011 - 16:40)