[AJAX] Une modification effective sur le nœud d’un fichier XML avec JS et DOM
J’ai réalisé un petit code qui modifie le contenu de la balise <param>
Qui à un parentNode qui lui à un Attribute("type") == "change" et que <param> lui-même à un Attribute("name") == "value" Bref voici le code.(il ne marche pas avec IE je c’est pas pour quoi ?)
Mais j’ai un souci avec c’est qui ne s’arrête jamais (et pour ton il sort bien de la boucle) si quelqu’un peut dire ou est l’erreur ? (Corriger grâce emmanuel.remy) j'ai modifier le code en conséquence dans test.rar.
Aussi j’ai bien réussit à modifier le contenu de la balise dans le fichier XML mais elle n’est pas applique aux fichiers XML ? Peut être qu’il existe une fonction qui fait sa ou que je meus suis malle prit.
importxml.js
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
// fonction de chargement du fichier xml au sein d'une variable
function loadXML(){
// Routine de vérification si le navigateur gêre la méthode utilisée
if (document.implementation && document.implementation.createDocument) {
// déclaration pour Mozilla et FF
docXml = document.implementation.createDocument('', '', null);
}
else if (window.ActiveXObject){
// déclaration pour IE
docXml = new ActiveXObject("Microsoft.XMLDOM");
}
else {
alert('Votre navigateur ne saurait pas éxécuter ce script.');
}
docXml.load("bdd.xml");
}
// fonction de traitement des données chargées
function biblio(num) {
var numero = parseInt(num, 10);
var evparams = docXml.getElementsByTagName('eventparams');
var noeud_texte;
document.write("evparams.length ="+evparams.length+"<br/>");
for (var i=0, c=evparams.length; i<c; i++) { //evparams.length
if(evparams[i].parentNode.getAttribute("type") == "change")
{
//window.confirm("Stop taper Non ?");
if(evparams[i].childNodes[1].getAttribute("name") == "value") {
document.write("evparams["+i+"].childNodes:= "+evparams[i].childNodes[1].firstChild.nodeValue+"<br/>"); //.nodeValue, nextSibling
/********Remplacement des balise*********/
noeud_texte = document.createTextNode("Tu peux!");
evparams[i].childNodes[1].replaceChild(noeud_texte, evparams[i].childNodes[1].firstChild);
document.write("Apré Modif: evparams["+i+"].childNodes:="+evparams[i].childNodes[1].firstChild.nodeValue+"<br/>");
}
}
}
return;
alert("balise eventparams attribut Type="+evparams[1].parentNode.getAttribute("type"));
//alert("balise 1er des param attribut Name="+evparams[0].firstChild.getAttribute("name"));
/*
var events = docXml.getElementsByTagName('event');
alert("le Nombre event(de seq): "+events.length +" leur valeur du type(1er) ="+events[0].getAttribute("type"));
*/
/********Remplacement des balise*********/
function replaceText(texts) {
var noeud_texte = document.createTextNode(texts);
}
}
window.onload = function() {
document.forms[0].reset();
loadXML();
document.forms[0].elements[1].onclick = function() {
biblio(document.forms[0].elements[0].value);
};
}; |
voici tous le code compler. en bas sur test.rar
Merci d’avance pour votre aide