資源描述:
《javascript讀取xml文件方法大集合》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、在B/S系統(tǒng)中經(jīng)常需要在客戶端和服務(wù)器端之間交互數(shù)據(jù),這些數(shù)據(jù)一般都是在客戶端由Javscript組織然后發(fā)回服務(wù)器。對于一些復(fù)雜的數(shù)據(jù)我們一般用xml的格式組織。本文將給出javascript對xml的一些基本操作。????????在javascript中是利用MSXml2組件對xml進行操作。該組件將xml加載到內(nèi)存中形成一個樹狀的數(shù)據(jù)結(jié)構(gòu),可以利用XPath語言對其進行查詢。?????????首先需要創(chuàng)建一個MSxml2.DOMDocument的對象,如下:?varxmlDoc=newActiveXObject("MSxml2.DOMDocument");,如果是ie5以上版本可以這樣:
2、CreateObject(“Microsoft.XMLDom);?創(chuàng)建了dom對象以后就可以用它加載一個xml文件或一段xml字符串,如下:?varstrFilePath=“file.xml”;?xmlDoc.load(strFilePath);//加載xml文件?varstrXml=“”;?xmlDoc.loadXml(strXml);//加載xml字符串?當(dāng)然還可以創(chuàng)建一個空的DOCDocument,然后向里面填寫內(nèi)容。?首先要創(chuàng)建xml的頭(),如
3、下:?var=xmlDoc.createProcessingInstruction("xml","version='1.0'");?xmlDoc.appendChild(head);?接下來為xml創(chuàng)建節(jié)點,如下:?varrootNode=xmlDoc.createNode("1","Hello","");?//參數(shù)1-節(jié)點類型;參數(shù)2-節(jié)點名稱;參數(shù)3-節(jié)點的命名空間?為節(jié)點創(chuàng)建屬性,???????varattribut=xmlDoc.createAttribute("Name");//參數(shù)-屬性名稱???????Attribute.value=“programer”;//為屬性賦值????
4、???rootNode.setAttributeNode(attribut);//將屬性附加到節(jié)點上?為節(jié)點添加文本值,???rootNode.value=“WhoamI”;?可以直接創(chuàng)建一個文本節(jié)點作為當(dāng)前節(jié)點的子節(jié)點?rootNode.appendChild(xmlDoc.createTextNode(“WhoamI”));?將節(jié)點添加到DOCDocument???xmlDoc.appendChild(rootNode);?當(dāng)然還可以為一個節(jié)點創(chuàng)建子節(jié)點,如下???rootNode.appendChild(xnChileNode);?利用XPath查找節(jié)點,也可以查找節(jié)點集???Varmy
5、Node=xmlDoc.selectSingleNode(“//Hello/Node[@Text=’Who’]”);?//查找目標的根節(jié)點的節(jié)點名為Hello,這條語句查詢的是Hello節(jié)點下的節(jié)點名為Node的節(jié)點中Text屬性?//等于”Who”的節(jié)點?VarmyNodeList=xmlDoc.selectNodes(“//Hello/Node);?//查詢Hello節(jié)點下的全部Node節(jié)點?刪除節(jié)點,刪除時只能刪除某一個節(jié)點下的子節(jié)點,而不能直接刪除孫節(jié)點。????VarmyNode=xmlDoc.selectSingleNode(“//Hello/Node[@Text=’Who’]”)
6、;?????VarhelloNode=xmlDoc.selectSingleNode(“//Hello”);?????xmlDoc.removeChild(myNode);//錯誤?????xmlDoc.removeChild(helloNode);//正確?????helloNode.removeChild(myNode);//正確?保存結(jié)果??梢詫mlDoc中的內(nèi)容保存到文件中,也可以直接獲取它的xml字符串,如下:???xmlDoc.save(strFilePath);//保存到文件???alert(xmlDoc.xml);//輸出xml字符串---------------------
7、-------------------------------------------------------------------------------------------------我的xml文件login.xml如下.??????????