2011-08-12 2 views
0

Je suis un éditeur pour CMS. maintenant je veux créer un fichier XML et je wnt pour écrire le contenu dans le fichier XMLComment écrire en XML en utilisant AJAX/Javascript

+1

Vous ne pouvez pas faire cela en utilisant seulement JavaScript. Vous devez transmettre le fichier XML, par exemple en tant que chaîne pour, par exemple, un script PHP. // J'ai supposé que vous vouliez créer un fichier XML sur un serveur ... Non? –

+0

Non, je n'utilise pas PHP. J'utilise seulement javascript et Ajax. est-ce possible? –

Répondre

1

JavaScript peut gérer très bien XML, en fait Ajax (XMLHttpRequest) était d'abord destiné à traiter ajax seulement plus tard le texte brut a prévalu.

Vous pouvez utiliser les fonctions suivantes pour manipuler XML

noeud XML Convertir chaîne

function XMLToStr(xmlNode){ 
    try{ // Mozilla, Webkit, Opera 
     return new XMLSerializer().serializeToString(xmlNode); 
    }catch(E) { 
     try { // IE 
      return xmlNode.xml; 
     }catch(E2){} 
    } 
} 

Convertir une chaîne en objet XML

function strToXML(xmlString){ 
    var dom_parser = ("DOMParser" in window && (new DOMParser()).parseFromString) || 
      (window.ActiveXObject && function(_xmlString) { 
      var xml_doc = new ActiveXObject('Microsoft.XMLDOM'); 
      xml_doc.async = 'false'; 
      xml_doc.loadXML(_xmlString); 
      return xml_doc; 
     }); 
    if(!dom_parser){ 
     return false; 
    } 
    return dom_parser.call("DOMParser" in window && (new DOMParser()) || window, xmlString, 'text/xml'); 
} 

Utilisation:

Convertir une chaîne en noeud XML et chercher des valeurs de ce

var xml = strToXML('<root><name>abc</name></root>'); 
console.log(xml.firstChild.nodeName); // root 
console.log(xml.firstChild.firstChild.firstChild.nodeValue); // abc 

Pour charger un objet XML à partir d'un appel Ajax au lieu de texte brut ou JSON, utilisez responseXML au lieu de responseText - la seule mise en garde étant que le XML doit être envoyé correctement à partir du serveur, à savoir. le type de contenu doit être correct et le XML doit être valide.

Questions connexes