2012-03-07 101 views
0

我需要使用Java腳本編寫XML文件。到目前爲止,我已經能夠提出的代碼如下。用javascript編寫XML文件

function loadXMLDoc(dname) {  
    if (window.XMLHttpRequest) { 
     xhttp = new XMLHttpRequest(); 
    } 
    else { 
     xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xhttp.open("GET", dname, false); 
    xhttp.send(); 
    return xhttp.responseXML; 
} 

function GenerateDocument() { 
    var xmlDoc = loadXMLDoc("XMLFile.xml"); 

    newelm = xmlDoc.createElement("Company"); 
    newAtt = xmlDoc.createAttribute("Name"); 
    newAtt.nodeValue = "ABC"; 

    //newelm.setAttributeNode(newAtt); 
    x = xmlDoc.getElementsByTagName("Companies"); 
    x.appendChild(newelm); 
} 

我能看到的元素和xmlDoc中的對象歸於但我無法子元素和attribues添加到XML文件。任何幫助表示讚賞。

感謝

回答

0

正如xato提到的,你將無法修改您是通過AJAX調用加載的實際文件。瀏覽器中的JavaScript通常不允許你寫文件。但是,您可以在完成修改後將XML寫入瀏覽器,或者將其發送回服務器,以便由服務器端腳本編寫。

編輯:完成操作XML文檔後,可以使用XMLSerializer將其作爲文本寫出到瀏覽器或將其存儲在字符串中。

var s = new XMLSerializer(); 
document.write(s.serializeToString(xmlDoc)); 

來源:https://developer.mozilla.org/en/XMLSerializer

+0

謝謝邁克。你能否給我提供一個例子或模擬代碼來展示如何做到這一點。我將要生成的XML是一個包含大約300個節點的大文件。 – RRForUI 2012-03-07 15:47:09

+0

用xml更新我的答案以進行字符串轉換。 – 2012-03-07 19:21:38

0

如果XML是大U可以考慮使用SAX解析器!

通過JS
你也可以使用,將採取跨瀏覽器的依賴保健和IE

提供類似的功能和屬性zXml.js

您可以加載使用

xmldom = new ActiveXObject("MSXML2.DOMDocument.6.0"); 

//loading an xml file is async by default 
//use xmldom.async = false; to load sync 

xmldom.load("addr.xml"); //give the xml file as an input 

//check if xml has errors 
if(xmldom.parseError.errorCode) 
{ 
    alert(xmldom.parseError.reason); 
    return; 
} 
else //successfully loaded xml 
{ 
    e = document.createElement("test"); 
    e.setAttribute("abc","xyz"); 

    document.getElementById("id").appendChild(e); 
} 

爲什麼XML你不用?

 xmlDoc.setAttribute("Name","abc"); 
+0

ThanksVireshas。我想通過java腳本生成一個新的XML文件。 – RRForUI 2012-03-07 15:52:58

+0

我正在編輯答案rohit plz看看 – vireshas 2012-03-07 15:53:39

+0

這是否解決你的問題? – vireshas 2012-03-07 16:24:44