javascript Xml增刪改查(IE下)操作實(shí)現(xiàn)代碼
更新時(shí)間:2009年01月30日 18:36:42 作者:
比較不錯(cuò)的實(shí)現(xiàn)代碼,大家可以仔細(xì)的看下,思路。
html文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>js操作Xml增刪改查(IE下)</title>
<script type="text/javascript"><!--
/*等解決的問(wèn)題:
1.xpath到底是定位到哪一層,怎樣定位到比如root這一級(jí)還是person或name這一級(jí).
*/
var xmlDoc;
var rootNode; //根結(jié)點(diǎn)
//裝載Xml文檔
function loadXml(){
try{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;//關(guān)閉異步加載
xmlDoc.load("XmlFile.xml");//load是從文件,loadXML是從字符串.
rootNode = xmlDoc.documentElement;
}catch(e) {alert(e.message)}
}
//顯示內(nèi)存中的Xml文檔
function outXml(){
var divXml=document.getElementById("divXml");
divXml.innerHTML=xmlDoc.xml;//顯示xml內(nèi)容,技巧是加個(gè)xml后綴.?
alert(xmlDoc.xml);
}
//增
function addXml(){
//葉子結(jié)點(diǎn),設(shè)置text值
var newName = xmlDoc.createElement("name");
newName.text = "crane";
var newGender = xmlDoc.createElement("gender");
newGender.text = "female";
//父級(jí)結(jié)點(diǎn),用appendChild(childNode);
var newPerson = xmlDoc.createElement("person");
//設(shè)置屬性id
newPerson.setAttribute("id","2");
newPerson.appendChild(newName);
newPerson.appendChild(newGender);
//增加到根結(jié)點(diǎn)
rootNode.appendChild(newPerson);
alert(xmlDoc.xml);
}
//刪
function deleteXml(){
//先找到結(jié)點(diǎn)
var singleNode = xmlDoc.selectSingleNode("/root/person[name='tree']");
//找到父級(jí)再刪除
singleNode.parentNode.removeChild(singleNode);
alert(xmlDoc.xml);
}
//改
function updateXml(){
var singleNode = xmlDoc.selectSingleNode("/root/person[name='crane']");
singleNode.childNodes[0].text = "updated";
alert(xmlDoc.xml);
}
//查
function queryXml(){
//alert(rootNode.nodeName);//節(jié)點(diǎn)名
//alert(rootNode.text);//節(jié)點(diǎn)里的全部?jī)?nèi)容
//xPath選擇節(jié)點(diǎn)數(shù)組
//var nodes = xmlDoc.selectNodes("/root/person");
//alert(nodes[0].text);
//選擇單個(gè)節(jié)點(diǎn)
/*總結(jié)
1."/root/person[name='tree']"等同于"/root[person/name='tree']"即找出來(lái)的是person結(jié)點(diǎn)
*/
var singleNode = xmlDoc.selectSingleNode("/root/person[gender='female']");//這里的值需要加引號(hào)
alert(singleNode.text);
alert(singleNode.getAttribute("id"));
//測(cè)試xpath定位
var sglNode = xmlDoc.selectSingleNode("/root[person/gender='male']");//這里定位不明確.再研究.
alert(sglNode.text);
//顯示全部xml文檔
//alert(xmlDoc.xml);
}
// --></script>
</head>
<body>
<div id="divXml"></div>
<input type="button" value="load" onclick="loadXml();" />
<input type="button" value="show" onclick="outXml();" />
<input type="button" value="add" onclick="addXml();" />
<input type="button" value="delete" onclick="deleteXml();" />
<input type="button" value="update" onclick="updateXml();" />
<input type="button" value="query" onclick="queryXml();" />
</body>
</html>
Xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<person id="1">
<name>tree</name>
<gender>male</gender>
</person>
</root>
復(fù)制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>js操作Xml增刪改查(IE下)</title>
<script type="text/javascript"><!--
/*等解決的問(wèn)題:
1.xpath到底是定位到哪一層,怎樣定位到比如root這一級(jí)還是person或name這一級(jí).
*/
var xmlDoc;
var rootNode; //根結(jié)點(diǎn)
//裝載Xml文檔
function loadXml(){
try{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;//關(guān)閉異步加載
xmlDoc.load("XmlFile.xml");//load是從文件,loadXML是從字符串.
rootNode = xmlDoc.documentElement;
}catch(e) {alert(e.message)}
}
//顯示內(nèi)存中的Xml文檔
function outXml(){
var divXml=document.getElementById("divXml");
divXml.innerHTML=xmlDoc.xml;//顯示xml內(nèi)容,技巧是加個(gè)xml后綴.?
alert(xmlDoc.xml);
}
//增
function addXml(){
//葉子結(jié)點(diǎn),設(shè)置text值
var newName = xmlDoc.createElement("name");
newName.text = "crane";
var newGender = xmlDoc.createElement("gender");
newGender.text = "female";
//父級(jí)結(jié)點(diǎn),用appendChild(childNode);
var newPerson = xmlDoc.createElement("person");
//設(shè)置屬性id
newPerson.setAttribute("id","2");
newPerson.appendChild(newName);
newPerson.appendChild(newGender);
//增加到根結(jié)點(diǎn)
rootNode.appendChild(newPerson);
alert(xmlDoc.xml);
}
//刪
function deleteXml(){
//先找到結(jié)點(diǎn)
var singleNode = xmlDoc.selectSingleNode("/root/person[name='tree']");
//找到父級(jí)再刪除
singleNode.parentNode.removeChild(singleNode);
alert(xmlDoc.xml);
}
//改
function updateXml(){
var singleNode = xmlDoc.selectSingleNode("/root/person[name='crane']");
singleNode.childNodes[0].text = "updated";
alert(xmlDoc.xml);
}
//查
function queryXml(){
//alert(rootNode.nodeName);//節(jié)點(diǎn)名
//alert(rootNode.text);//節(jié)點(diǎn)里的全部?jī)?nèi)容
//xPath選擇節(jié)點(diǎn)數(shù)組
//var nodes = xmlDoc.selectNodes("/root/person");
//alert(nodes[0].text);
//選擇單個(gè)節(jié)點(diǎn)
/*總結(jié)
1."/root/person[name='tree']"等同于"/root[person/name='tree']"即找出來(lái)的是person結(jié)點(diǎn)
*/
var singleNode = xmlDoc.selectSingleNode("/root/person[gender='female']");//這里的值需要加引號(hào)
alert(singleNode.text);
alert(singleNode.getAttribute("id"));
//測(cè)試xpath定位
var sglNode = xmlDoc.selectSingleNode("/root[person/gender='male']");//這里定位不明確.再研究.
alert(sglNode.text);
//顯示全部xml文檔
//alert(xmlDoc.xml);
}
// --></script>
</head>
<body>
<div id="divXml"></div>
<input type="button" value="load" onclick="loadXml();" />
<input type="button" value="show" onclick="outXml();" />
<input type="button" value="add" onclick="addXml();" />
<input type="button" value="delete" onclick="deleteXml();" />
<input type="button" value="update" onclick="updateXml();" />
<input type="button" value="query" onclick="queryXml();" />
</body>
</html>
Xml文件:
復(fù)制代碼 代碼如下:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<person id="1">
<name>tree</name>
<gender>male</gender>
</person>
</root>
您可能感興趣的文章:
- js 如何實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的增刪改查
- javascript操作xml(增刪改查)例子代碼hta版
- JS對(duì)select控件option選項(xiàng)的增刪改查示例代碼
- JavaScript針對(duì)網(wǎng)頁(yè)節(jié)點(diǎn)的增刪改查用法實(shí)例
- node.js操作mysql(增刪改查)
- AngularJS中如何使用$http對(duì)MongoLab數(shù)據(jù)表進(jìn)行增刪改查
- Node.js操作mysql數(shù)據(jù)庫(kù)增刪改查
- javascript實(shí)現(xiàn)信息增刪改查的方法
- javascript js 操作數(shù)組 增刪改查的簡(jiǎn)單實(shí)現(xiàn)
- JS結(jié)合bootstrap實(shí)現(xiàn)基本的增刪改查功能
相關(guān)文章
JavaScript的數(shù)據(jù)類型轉(zhuǎn)換原則(干貨)
JavaScript是一門弱類型(或稱動(dòng)態(tài)類型)的語(yǔ)言,即變量的類型是不確定的。下面通過(guò)本文給大家分享javascript數(shù)據(jù)類型轉(zhuǎn)換小結(jié),包括顯示轉(zhuǎn)換的數(shù)據(jù)類型和隱式的數(shù)據(jù)類型轉(zhuǎn)換,感興趣的朋友跟隨腳本一起看看吧2018-03-03
使用js操作css實(shí)現(xiàn)js改變背景圖片示例
有個(gè)朋友在weibo上問(wèn)我可不可以用JS和CSS讓頁(yè)面每次刷新隨機(jī)產(chǎn)生一張背景圖,當(dāng)然是可以的。具體的方法看下面的實(shí)現(xiàn)代碼吧2014-03-03
純?JS?實(shí)現(xiàn)的輕量化圖片編輯器實(shí)例詳解
這篇文章主要為大家介紹了純JS實(shí)現(xiàn)的輕量化圖片編輯器實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
JS+canvas動(dòng)態(tài)繪制餅圖的方法示例
這篇文章主要介紹了JS+canvas動(dòng)態(tài)繪制餅圖的方法,結(jié)合具體實(shí)例形式分析了js+canvas實(shí)現(xiàn)餅狀圖形繪制的相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
基于JQuery模仿蘋果桌面的Dock效果(初級(jí)版)
新的一天新的開始,今天要分享的是用JQuery模仿蘋果操作系統(tǒng)桌面的Dock效果,之所以稱之為初級(jí)版,是因?yàn)槠渲羞€有一些bug,顯示效果并不穩(wěn)定2012-10-10
IE6-IE9不支持table.innerHTML的解決方法分享
讓ie6-ie9支持table.innerHTML,其實(shí)這里只是對(duì)table做了處理,對(duì)其他不支持的元素可以用類似的方案2012-09-09

