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>
<?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>
相关文章推荐
- IE下JS读取xml文件示例代码
- JS读取XML文件示例代码
- WebCollector爬取JS加载的数据很简单,首先需要加入selenium的所有jar包,maven项目向pom.xml中添加下面代码
- JS读取XML文件示例代码
- IE下JS读取xml文件示例代码
- JS动态添加与删除select中的Option对象(示例代码)
- 用JS添加文本框案例代码
- js 加载并解析XML字符串的代码
- 分享非常有用的Java程序 (关键代码)(六)---解析/读取XML 文件(重要)
- js读取xml作为数据源填充四级联动下拉框
- JS 添加网页桌面快捷方式的代码详细整理
- 可以读取EXCEL文件的js代码第1/2页
- 利用代码读取XML文档
- 零代码读取XML数据
- JS读取XML
- 测试博文中添加可执行JS代码
- 在dll中读取文件(img, xml, js...)
- 用js实现树的先序遍历算法读取xml的每个结点