您的位置:首页 > Web前端 > JavaScript

js读取和添加xml代码

2010-08-01 21:58 218 查看
比如我们有一个xml文件内容是:

<?xml version="1.0" encoding="UTF-8"?>

<root>

<sub>

<name>1111111</name>

<addr>22222222</addr>

<remark>333333</remark>

</sub>

<sub>

<name>21111111</name>

<addr>322222222</addr>

<remark>4333333</remark>

</sub>

</root>

1.如何用js来读取sub的总数和.

2.将这些sub存入一个二维数组(现在就是2*3大小的)中;

3.如何添加一个sub节点;

还有一个就是要在Firefox和ie下面能正确运行.

----------------------

<!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代码</title>

<script type="text/javascript">

function Version()

{

if (window.ActiveXObject) {//ie

return "IE";

}

else if (document.implementation.createDocument) {//Mozilla, Firefox, Opera, etc.

return "FF";

}

return "";

}

// 兼容浏览器读取xml

function getxml(strxml)

{

var xmlDoc = null;

if (window.ActiveXObject) {//ie

xmlDoc = new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async = false;

xmlDoc.loadXML(strxml);

//如果从外部xml文件读取可使用xmlDoc.load(file);

}

else if (document.implementation.createDocument) {//Mozilla, Firefox, Opera, etc.

// xmlDoc = document.implementation.createDocument("", "", null);

xmlDoc = (new DOMParser()).parseFromString(strxml, "text/xml");

//如果从外部xml文件读取可使用xmlDoc.load(file);

}

return xmlDoc;

}

window.onload = function ()

{

var xml = document.getElementById("xml").innerHTML;

var xmlDOM = getxml(xml);

var count = 0;

var array = new Array();

if (Version() == "IE") {

count = xmlDOM.documentElement.childNodes.length;

alert("sub的总数:" + count );

for (var i = 0; i < count; i++) {

var node = xmlDOM.documentElement.childNodes.item(i);

var arr = new Array();

for (var c = 0; c < node.childNodes.length; c++) {

arr.push(node.childNodes.item(c).text);

// alert(node.childNodes.item(c).text);

}

array.push(arr);

}

show2Array(array);

//new node

var newNode = xmlDOM.documentElement.childNodes.item(0).cloneNode(1);

newNode.childNodes.item(0).text = "hello";

newNode.childNodes.item(1).text = "world";

newNode.childNodes.item(2).text = "nice!";

xmlDOM.documentElement.appendChild(newNode);

var arr = new Array();

arr.push(newNode.childNodes.item(0).text);

arr.push(newNode.childNodes.item(1).text);

arr.push(newNode.childNodes.item(2).text);

array.push(arr);

alert("添加新节点之后:");

show2Array(array);

count = xmlDOM.documentElement.childNodes.length;

alert("添加新节点之后sub的总数:" + count );

}

else {

count = xmlDOM.documentElement.children.length;

alert("sub的总数:" + count);

for (var i = 0; i < count; i++) {

var node = xmlDOM.documentElement.children.item(i);

var arr = new Array();

for (var c = 0; c < node.children.length; c++) {

arr.push(node.children.item(c).textContent);

}

array.push(arr);

}

show2Array(array);

//new node

var newNode = xmlDOM.documentElement.children.item(0).cloneNode(1);

newNode.children.item(0).textContent = "hello";

newNode.children.item(1).textContent = "world";

newNode.children.item(2).textContent = "nice!";

xmlDOM.documentElement.appendChild(newNode);

var arr = new Array();

arr.push(newNode.children.item(0).textContent);

arr.push(newNode.children.item(1).textContent);

arr.push(newNode.children.item(2).textContent);

array.push(arr);

alert("添加新节点之后:");

show2Array(array);

count = xmlDOM.documentElement.children.length;

alert("添加新节点之后sub的总数:" + count);

}

};

function show2Array(array)

{

for (var c = 0; c < array.length; c++) {

var arr = array[c];

var str = ""

for (var i = 0; i < arr.length; i++) {

str += arr[i] + "/r/n";

}

alert("第" + (c + 1) + "个元素:/r/n" + str);

}

}

</script>

</head>

<body>

<div id="xml" style="display:none;">

<?xml version="1.0" encoding="utf-8" ?>

<root>

<sub>

<name>1111111</name>

<addr>22222222</addr>

<remark>333333</remark>

</sub>

<sub>

<name>21111111</name>

<addr>322222222</addr>

<remark>4333333</remark>

</sub>

</root>

</div>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: