Trucsweb.com

Forum de discussion

 Forum « Flash et Shockwave » (archives)

Le XML pour les nuls ...

Envoyé: 12 décembre 2004, 9h14 par toph


Salut

Merci encore pour ce flot d'explications ... Pour les scripts serveur de création de XML, je plaide coupable. J'ai trop la flemme, même si je conçois sans problème que les routines flash puissent ne pas être aux normes W3C ... Mais si un jour j'ai un peu de temps je m'en irai percer ce secret ...
Et concernant un trip XML, disons que j'en entends parler depuis pas mal de temps et que justement, le fait de ne pas avoir à se galérer à faire de la détection de chaine de caractère ou à gérer une connexion SQl m'avait relativement séduit (forcément, c'était san compter les incompatibilités "macromédiesques") ... Et oui, le XML a l'air vraiment puissant et relativement sousestimé j'ai l'impression... m'enfin, je suis graphiste avant d'être développeur alors, je crois que je vais rester sur flash...

Toujours est-il que pour les Archives je vais livrer ici un exemple de gestion de fichier XML (un livre d'or - tiens comme c'est bizarre) avec download, modification et upload via un PHP...

Sur la Scène :
un bouton appelé "bouton"
un texte dynamique appelé "texte";

Sur la première image, le code suivant :
//creation de l'objet XML
book = new XML();
// ignorer tous les blancs, retours à la ligne et autres trucs qui peuvent planter le décryptage
book.ignoreWhite = true;
// Forcer l'encodage au format URL
book.addRequestHeader("Content-Type", "application/x-www-form-urlencoded");
book.onLoad = function(ok) {
// si la connexion se passe bien : on affiche dviserses infos
// telles que le nombre de message du livre et le contenu du XML
if (ok) {
texte.text = "nombre de message : "
+book.childNodes[0].childNodes.length
+"\nContenu du XML : "
+book.toString();
} else {
texte.text = "problème de connexion";
}
};

bouton.onRelease = function() {
// clone le dernier message du livre & modifie chacun des champs
nouveau = book.childNodes[0].childNodes[0].cloneNode(true);
nouveau.attributes.nom = "Toph'";
nouveau.attributes.message = "alors ça, c'est de la balle ça marche même avec plein d'accents : éèaà!ù@";
nouveau.attributes.date = new Date();
nouveau.attributes.titre = "Titre";
// ajoute le nouveau message au début du livre (pour qu'il apparaissent en premier
book.childNodes[0].insertBefore(nouveau, book.childNodes[0].firstChild);

// crée la capsule d'envoi du XML au script serveur de mise à jour : maj_book.php
capsule = new LoadVars();
// création d'une variable (peu importe son nom), au sein de la capsule
// on y stocke le contenu du book sans l'entete XML
capsule.xml = book.childNodes[0];
// envoi et stockage du book de retour
capsule.sendAndLoad("maj_book.php", book);

// attention, l'utilisation de sendAndLoad provoquera obligatoirement le lancement
// de la fonction .onload de l'objet XML (ici book.onLoad). Attention aux boucles sans fin
};


system.useCodepage = true; // Normalement, pas besoin de cette ligne, mais on est jamais trop prudent
book.load("book.xml");

Dans mon fichier XML "book.xml" :

<?xml version= "1.0" encoding= "UTF-8" standalone= "no"?><book><post nom="Moi" titre="premier message" date="aujourd'hui" message="le XML c'est bien" ></book>

Dans mon fichier PHP maj_book.php :

<?
//----------------------------------------------
function ecrire( $fichier,$contenu )
{
$fp = fopen( $fichier, "w");
if ( $fp )
{
$ok = fwrite( $fp, $contenu);
fclose( $fp );
return 1;
}
return false;
}
//-----------------------------------------------
ecrire('book.xml',urldecode($_POST["xml"]));
print(urldecode($_POST["xml"]));
?>

Et là, normalement tout fonctionne. Il faut biensur un serveur apache pour pouvoir exécuter le swf correctement...

Celà-dit, il me reste un problème de taille : la mise en cache du fichier
XML ... ce qui fait qu'une fois la page rechargé, il garde l'ancien XML qu'il avait en cache et ne recharge pas le nouveau modifié ... je cherche dans les header, mais jusque là, je n'ai rien trouvé pour forcer flash à récupérer le nouveau xml et a supprimer l'ancien du cache...

Si tu as une idées Oznog, ce serait bienvenu...

Encore merci et
A plus
Toph'


Réponses

 sp spRe: Le XML pour les nuls ... solution au pb de cache toph12/12/2004
Aucun médias sociaux
X

Trucsweb.com Connexion

Connexion

X

Trucsweb.com Mot de passe perdu

Connexion

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte

Créer un compte

.
@