`
SavageGarden
  • 浏览: 220042 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XML---JS基本操作

    博客分类:
  • XML
阅读更多
最近用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>&nbsp&nbsp<a href=javascript:deleEntity("+jsStudent.num+")>删除</a></td></tr>";
			}
		}
		table += "<tr><td colspan=5><a href=javascript:addEntity()>添加</a>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<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>


分享到:
评论

相关推荐

    dwr2.0.2.jar + bsf-2.3.jar+xml-apis.jar

    xml-apis.jar 是XML API的集合,包含了一些处理XML的基本接口和类,如DOM(Document Object Model)、SAX(Simple API for XML)和XPath等。这些API是处理XML文档的标准,它们允许程序解析、构建和操作XML文档。在...

    xml-to-json

    为了更好地利用这个jQuery扩展,开发者应该熟悉XML和JSON的语法,理解它们之间的差异,以及如何在JavaScript中操作JSON对象。同时,了解jQuery的基本API和选择器也是必要的,这有助于在实际项目中有效地整合XML-to-...

    xml-DOM教学PPT

    XML-DOM(Document Object Model)是一种用于处理XML文档的标准接口,它允许程序员通过JavaScript、Java、C++等语言来创建、修改和访问XML文档。DOM将XML文档转换为一棵节点树,每个节点代表XML文档的一部分,如元素...

    xml-to-json.zip_delphi xml转json_xml 2 JSON

    在Delphi中,开发者可以使用内置的XML DOM库来解析和操作XML文档,同时也可以利用第三方库或自定义代码来实现XML到JSON的转换。 "xml-to-json.zip"是一个Delphi相关的项目,它提供了将XML转换为JSON的功能。这个...

    ajax-xml-aspnet读存数据基础代码

    - **jq.js**: 这是一个JavaScript文件,很可能包含了一些使用jQuery库的代码,jQuery简化了JavaScript的DOM操作和Ajax交互。 - **images**: 这个目录可能包含了页面所需的图像资源。 **2. Ajax与XML的交互** - **...

    表格转csv-xml-json

    总结来说,表格转csv-xml-json是数据处理中的基本操作,涉及到数据格式的互换,这在数据分析、数据存储、API交互等多个领域都有广泛应用。了解和掌握这些转换方法对于IT从业者来说是非常重要的技能。

    前端开源库-xml2js-parser

    然而,JavaScript原生并不支持直接处理XML,因此出现了如`xml2js-parser`这样的开源库,帮助开发者将XML数据转换为更易于操作的JavaScript对象。 `xml2js-parser`是一个轻量级的前端库,它的主要功能是将XML文档...

    ASP.NET 2.0 AJAX入门经典实例,有很好的参考价值,XML-Script

    ASP.NET 2.0 AJAX(Asynchronous JavaScript and XML)是一种技术框架,用于构建高度交互性和响应迅速的Web应用程序。在ASP.NET 2.0中引入的AJAX支持,允许开发者利用客户端JavaScript技术来实现页面的部分刷新,...

    XML-student.rar_XML 网页_student_xml_网页 xml

    XML(Extensible Markup Language)...通过这个项目,学习者可以掌握XML的基本语法,理解DOM操作,以及XML与JavaScript之间的交互方式。这样的技能在现代Web开发中非常关键,因为它们是构建动态、数据驱动网站的基础。

    javascript操作xml文件示例

    以上就是使用JavaScript操作XML文件的基本步骤和示例。在实际应用中,可能还需要考虑错误处理、兼容性问题以及更复杂的逻辑操作。理解并熟练运用这些技术,可以帮助开发者在前端环境中有效地处理和操作XML数据。

    05+第3章XML简介--JS操作DOM.rar

    本章将深入介绍XML的基本概念、结构以及JavaScript如何操作XML DOM(Document Object Model)来处理XML文档。 一、XML基础 1. XML的定义:XML是一种自定义标记语言,它的设计目标是传输和存储数据,而不是显示数据...

    XML-WEB.rar_记事本HTML

    此外,XML也可以与JavaScript结合,例如通过AJAX(Asynchronous JavaScript and XML)技术,实现在不刷新整个页面的情况下更新部分网页内容,提升用户体验。 在实际应用中,XML还常用于服务器和客户端的数据交换,...

    XML-RPC for PHP-开源

    例如,WordPress的远程管理功能就使用了XML-RPC,允许用户通过其他编程语言或工具(如Movable Type API)对WordPress站点进行操作。 在提供的压缩包`xmlrpc-2.2.1`中,可能包含了这个PHP XML-RPC库的源代码,包括...

    javascript 操作xml的所有属性事件方法和实例

    以上就是JavaScript操作XML的基本知识,包括创建XML对象、DOM操作、事件处理以及通过AJAX获取和解析XML数据的方法。理解这些概念和实践,将有助于你在实际项目中更好地处理XML数据。在提供的“JavaScript节点操作xml...

    ant - build.xml - summary

    标题中的“ant - build.xml - summary”指的是Apache Ant工具中的构建文件`build.xml`的概要。Apache Ant是一个广泛使用的Java项目自动化构建工具,类似于Unix的make,但基于XML。在Ant中,`build.xml`是项目的配置...

    d3-cluster-xml-viewer:使用d3集群的前端xml查看器

    要深入学习和使用d3-cluster-xml-viewer,你需要具备基本的JavaScript和D3.js知识,以及对XML的理解。你可以从项目的GitHub仓库(d3-cluster-xml-viewer-master)中获取源代码,进一步研究其实现机制,甚至根据自身...

    xml课程设计---xml留言板

    通过这个项目,你不仅可以掌握XML的基本用法,还能了解到JSP处理动态数据的能力,同时提升数据存储和页面交互的设计技巧。实践是检验真理的唯一标准,动手完成这个课程设计,对于理解和应用XML技术会有极大的帮助。

    jquery-3.2.0.js,jquery-3.2.0.min.js

    **jQuery 是一个广泛使用的 JavaScript 库,它极大地简化了 JavaScript 的 DOM 操作、事件处理、动画设计以及Ajax交互。在本篇文章中,我们将深入探讨 jQuery 的核心特性、优点以及如何在实际项目中应用这两个文件:...

    js解析XML文件

    使用 JavaScript 我们可以创建和操作 XML 节点,包括创建元素节点、属性节点、文本节点和 CDATA 节点。 XML 文件的加载和保存 使用 JavaScript 我们可以加载和保存 XML 文件,包括从文件中加载 XML 文件和将 XML ...

    js对xml的简单操作

    在IT领域,特别是Web开发中,JavaScript(JS)与XML(可扩展标记语言)的结合应用十分常见。本文将深入探讨“js对xml的...掌握这些基本操作是构建复杂Web应用、处理异构数据源以及与服务器端进行数据交换的关键技能。

Global site tag (gtag.js) - Google Analytics