最近用XML比较多,写点基本操作的总结,积累下
JS读取XML文件内容
很简单的一个页面,点击按钮时读取XML内容显示在DIV中
<html>
<head>
<title>解析XML</title>
</head>
<body>
<div align="center">
<input type="button" onclick="javascript:showListByXML()" value="解析XML" />
</div>
<div id="div1" align="center" style="position:absolute; border-width:1; border-style:outset;
padding:1; width:262; height:25; left: 500; top: 150; visibility: hidden; background-color:#FFFFFF"></div>
</body>
</html>
JS代码
<script LANGUAGE="JavaScript">
/**
*学生类实体
*/
function student(){
var num="";
var name="";
var age="";
var sex="";
}
/**
*加载XML文件
*/
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load("xmlForYaWu.xml");
/**
*得到根节点
*/
var root = xmlDoc.getElementsByTagName("Students")[0];
/**
*得到所有子节点
*/
var Students = xmlDoc.getElementsByTagName("Students")[0].getElementsByTagName("Student");
/**
*赋值为一个子节点
*/
var xmlStudent;
/**
*赋值为一个学生类实体
*/
var jsStudent;
/**
*存储学生类实体的数组
*/
var StudentList = new Array(Students.length);
/**
*将XML中的节点、属性转化为JS学生类实体的属性,并存储到数组中
*/
for(var i = 0; i < Students.length; i++){
xmlStudent = Students[i];
jsStudent = new student();
jsStudent.num = xmlStudent.getAttribute("num");
jsStudent.name = xmlStudent.getAttribute("name");
jsStudent.age = xmlStudent.getAttribute("age");
jsStudent.sex = xmlStudent.getAttribute("sex");
StudentList[i] = jsStudent;
}
/**
*控制显示的DIV
*/
var div = document.getElementById("div1");
/**
*显示DIV
*/
function showDIV(){
div.style.visibility = "visible";
}
/**
*隐藏DIV
*/
function closeDIV(){
div.style.visibility = "hidden";
}
/**
*从存储着学生类实体的数组中遍历,写到table中格式化输出
*/
function showListByXML(){
var table = "<table border=0 width='100%' bgcolor='#ddffFF' style='{border-color: #3388cc; border-style: solid; border-width: 1px;}'>"
+"<tr align='center'>"
+"<td>编号</td><td>姓名</td><td>年龄</td><td>性别</td><td>操作</td>"
+"</tr>";
for(var i = 0; i < StudentList.length; i++){
jsStudent = StudentList[i];
if(jsStudent!=null){
table += "<tr align='center'><td>"+jsStudent.num+"</td><td>"+jsStudent.name+"</td><td>"+jsStudent.age+"</td><td>"+jsStudent.sex+"</td><td><a href=javascript:editEntity("+jsStudent.num+")>编辑</a>  <a href=javascript:deleEntity("+jsStudent.num+")>删除</a></td></tr>";
}
}
table += "<tr><td colspan=5><a href=javascript:addEntity()>添加</a>      <a href=javascript:closeDIV()>关闭</a></td></tr></table>";
div.innerHTML = table;
showDIV();
}
/**
*根据学生编号得到要编辑的学生,
*如果编号没有在数组中遍历出的学生实体中找到,
*就创建一个新的学生实体
*/
function editEntity(num){
closeDIV();
var table = "<table border=0 width='100%' bgcolor='#ddffFF' style='{border-color: #3388cc; border-style: solid; border-width: 1px;}'>";
for(var i = 0; i < StudentList.length; i++){
jsStudent = StudentList[i];
if(jsStudent!=null&&jsStudent.num==num){
break;
}else if(i==StudentList.length-1){
jsStudent = new student();
jsStudent.num = num;
jsStudent.name = "";
jsStudent.age = "";
jsStudent.sex = "";
}
}
table += "<tr align='center'><td>姓名</td><td><input type='text' id='"+jsStudent.num+"name' value="+jsStudent.name+"></td></tr>";
table += "<tr align='center'><td>年龄</td><td><input type='text' id='"+jsStudent.num+"age' value="+jsStudent.age+"></td></tr>";
table += "<tr align='center'><td>性别</td><td><input type='text' id='"+jsStudent.num+"sex' value="+jsStudent.sex+"></td></tr>";
table += "<tr align='center'><td colspan=2><input type=button onclick=saveEntity("+num+") value='保存'/></td></tr></table>"
div.innerHTML = table;
showDIV();
}
/**
*保存学生实体,转化为Elemental,保存到XML文件
*/
function saveEntity(num){
var isNew = false;
for(var i = 0; i < Students.length; i++){
xmlStudent = Students[i];
if(xmlStudent.getAttribute("num")==num){
break;
}else if(i==Students.length){
xmlStudent = xmlDoc.CreateElement("Student");
isNew = true;
}
}
xmlStudent.setAttribute("num",num);
xmlStudent.setAttribute("name",document.getElementById(num+"name").value);
xmlStudent.setAttribute("age",document.getElementById(num+"age").value);
xmlStudent.setAttribute("sex",document.getElementById(num+"sex").value);
if(isNew){
root.AppendChild(xmlStudent);
}
//客户端保存有问题,先注掉
//xmlDoc.save("xmlForYaWu.xml");
}
/**
*添加一个学生实体,则将编号加1,然后调用编辑的方法
*/
function addEntity(){
editEntity((Students.length+1));
}
/**
*删除指定NUM的节点
*/
function deleEntity(num){
xmlStudent = null;
for(var i = 0; i < Students.length; i++){
xmlStudent = Students[i];
if(xmlStudent.getAttribute("num")==num){
break;
}
}
//删除、保存有问题,先注掉
//xmlStudent.removeAll();
//xmlDoc.save("xmlForYaWu.xml");
}
</script>
XML文件
<?xml version="1.0" encoding="GB2312"?>
<Students>
<Student num="1" name="张三" age="22" sex="男"/>
<Student num="2" name="李四" age="23" sex="男"/>
<Student num="3" name="王五" age="24" sex="男"/>
</Students>
分享到:
相关推荐
好了,通过第三章的学习,我们已经了解了一些XML和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵循什么样的语法,在下一章,将重点介绍有关撰写XML和DTD文档的语法。 第四章 XML语法 七.DTD的语法...
JavaScript.as ---------------------- javascript交互 HTTPS.as ---------------------- url随机数 SNS.as ---------------------- 各个sns网站的分享 timeline: prevPlay.as ---------------------...
本书回答了大部分基本的XML问题—什么是XML,为什么需要它,以及怎样使用它—并且介绍了到目前为止最重要、最实用的XML技术。本书的主题均是经过精心筛选的,对每一种主题的介绍都很有深度,并且避免了不完整的解决...
总而言之,我们的显示主线包括:第8章:链接和查询第9章:操作XML 第13章:样式化第14章:WAP 阅读本书前的准备本书假设你已经掌握了一些关于HTML、JavaScript、Java和ASP的知识。如果你不熟悉Java或ASP,它并不会...
本书回答了大部分基本的XML问题—什么是XML,为什么需要它,以及怎样使用它—并且介绍了到目前为止最重要、最实用的XML技术。本书的主题均是经过精心筛选的,对每一种主题的介绍都很有深度,并且避免了不完整的解决...
-修正绑定到Tree的XMLDocument中Icon属性映射错误(feedback:nopnop9)。 -修正HtmlEditor不能编辑的BUG(feedback:TheBox)。 -修正IE下有时会出现空白页面的情况(feedback:olivia919)。 +2009-12-06 v2.1.8 -...
9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的...
9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的...
9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的...
9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的...
4.1 JavaScript的基本文法 4.2 常量和变量 4.3 表达式和运算符符 4.4 控制语句 句 4.5 总结 第5章 数据类型 5.1 基本数据类型 5.2 数组和对象 5.2.1 数组 5.2.2 对象--一个...
9-26 2 javascript基本介绍 9-26 3 javascript变量 标识符规范 9-26 4 javascript数据类型三大类型 9-26 5 javascript算术运算符及位运算 9-26 6 javascript三大流程控制 9-27 1 课程回顾 9-27 2 循环控制 金字塔的...
本书回答了大部分基本的XML问题—什么是XML,为什么需要它,以及怎样使用它—并且介绍了到目前为止最重要、最实用的XML技术。本书的主题均是经过精心筛选的,对每一种主题的介绍都很有深度,并且避免了不完整的解决...
本文实例讲述了JS操作XML中DTD介绍及使用方法。分享给大家供大家参考,具体如下: 什么是DTD,为什么需要DTD? DTD为英文Document Type Definition,中文意思为“文档类型定义”。DTD肩负着两重任务:一方面它帮助你...
Singatures配置允许我们对DWR要操作的对象类型进行配置.对于了解JDK5泛型编程的开发人员来说下面的格式是很容易理解的. <![CDATA[ import java.util.List; import com.example.Check; Check.setLotteryResults...
第三部分:目录及基本操作说明 Part1:目录部分 admin ../管理目录 css ../css目录 ggg ../广告等页面 images../图片目录 Inc ../核心文件目录 index ../二级分类静态页面,建议不要修改。如在后台基本设置中修改了...
1.1.2 JavaScript的基本特点 2 1.1.3 常用的Web开发语言 3 1.2 JavaScript的应用 4 1.2.1 客户端应用 5 1.2.2 服务器端应用 5 1.3 在Web页面中使用JavaScript 5 1.3.1 HTML的基本结构 5 1.3.2 在HTML中嵌入...