javascript之XML DOM的解析

标签: javascript xml dom | 发表时间:2014-01-05 01:08 | 作者:
出处:http://www.iteye.com

javascript之XML DOM的解析

 

一、xml文件的定义

     

<?xml version="1.0" encoding="gbk"?>
<china>
	<province name="吉林省">
		<city>长春</city>
		<city>吉林市</city>
		<city>四平</city>
		<city>松原</city>
		<city>通化</city>
	</province>
	<province name="辽宁省">
		<city>沈阳</city>
		<city>大连</city>
		<city>鞍山</city>
		<city>抚顺</city>
		<city>铁岭</city>
	</province>
	<province name="山东省">
		<city>济南</city>
		<city>青岛</city>
		<city>威海</city>
		<city>烟台</city>
		<city>潍坊</city>
	</province>
</china>	

 

二、xml文件解析器的util类(跨浏览器)

function parseXML(fileXmlName){
      var xmlDoc;			
      try {
	  		//Internet Explorer  创建一个空的xml文档
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
     } 
    catch (e) {
            try {
			//Firefox, Mozilla, Opera, 创建一个空的xml文档
	   		xmlDoc = document.implementation.createDocument("", "", null);
            } 
            catch (e) {
            }
     }
     //关闭异步加载
     xmlDoc.async = false;
     //加载xml文件
     xmlDoc.load(fileXmlName);
     return xmlDoc;
}

 

三、XML DOM访问节点

    <html>
      <head>
        <title>test01.html</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script type="text/javascript" src="util.js"></script>
    </head>
    <body>
        <select id="province" name="province">
            <option value="">请选择....</option>
            <option value="吉林省">吉林省</option>
            <option value="辽宁省">辽宁省</option>
            <option value="山东省">山东省</option>
        </select>
        <select id="city" name="city">
            <option value="">请选择.....</option>
        </select>
    </body>
    <script language="JavaScript">
	//获取第一个下拉选择框时,显示对应的省份信息
	document.getElementById("province").onchange = function () {
	//处理上一级节点的值
	var cityElement = document.getElementById("city");
	var optionElements =cityElement.getElementsByTagName("option");
	for(var z=1;z<optionElements.length;z++){
		cityElement.removeChild(optionElements[z]);
		z--;
	}
	
    //1.获取页面选中的省份信息
    var provinceElement = this.value;
    //2.创建xml解析器,参数传递xml文件
    var docXml = parseXML("cities.xml");
    //3.获取xml文件所有对应的province标签
    var provinceXmlElements = docXml.getElementsByTagName("province");
    //4.遍历province标签
    for (var i = 0; i < provinceXmlElements.length; i++) {
        var provinceXmlElement = provinceXmlElements[i];
        var provinceXmlValue = provinceXmlElement.getAttribute("name");
        //5.对比(页面==xml)
        if (provinceXmlValue == provinceElement) {
            //6.获取获取xml文件所有对应的province下的所有city标签
            var cityXmlElements = provinceXmlElement.getElementsByTagName("city");
            //7.遍历city标签
            for (var j = 0; j < cityXmlElements.length; j++) {
                var cityXmlElement = cityXmlElements[j];
//              var cityXmlValue = cityXmlElement.fistChild.nodeValue;
				var cityXmlValue = cityXmlElement.text;
                //8.增加city值
                var optionElement = document.createElement("option");
                optionElement.setAttribute("value", cityXmlValue);
                var text = document.createTextNode(cityXmlValue);
                optionElement.appendChild(text);
                cityElement.appendChild(optionElement);
            }
        }
    }
}
			
    </script>
</html>

 

四、XML DOM 操作 XML文档

    XML DOM中创建节点,删除节点,移动节点,读写节点数据等操作与HTML DOM的操作相同

 

 



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [javascript xml dom] 推荐:

javascript之XML DOM的解析

- - ITeye博客
javascript之XML DOM的解析. . 长春. 吉林市. 四平. 松原. 通化. .

Android DOM解析XML

- - CSDN博客移动开发推荐文章
if(personChilds.item(y).getNodeType()==Node.ELEMENT_NODE){//判断当前节点是否是元素类型节点. 作者:jaycee110905 发表于2013-2-7 21:04:29 原文链接. 阅读:78 评论:0 查看评论.

javaScript DOM使用

- - CSDN博客互联网推荐文章
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. 1 修改HTML元素内容. document.write(Date()); //在输入流中直接写 document.getElementById(id).innerHTML=new HTML. //改变已经有的元素内容 document.getElementById("image").src="landscape.jpg";.

Javascript的DOM操作

- - CSDN博客Web前端推荐文章
返回对拥有指定id的第一个对象进行访问. 返回带有指定名称的节点集合. 返回带有指定标签名的对象集合. 返回带有指定class名称的对象集合. 参数:是否复制原节点的所有属性. 注意:IE会忽略节点间生成的空白文本节点(例如,换行符号),而Mozilla不会这样做. 在删除指定节点的时候不会出错,但是如果要删除最后一个子结点或者是第一个子结点的时候,就会出现问题.

Dom方式创建/解析xml

- - ITeye博客
如右图所示,将使用Dom方式,创建图一的xml,并解析图二中更为复杂的xml. 1.新建一个类,Domdemo.java,代码如下:. name.appendChild(this.document.createTextNode("张三"));. sex.appendChild(this.document.createTextNode("男"));.

SAX和DOM解析XML区别

- - 移动开发 - ITeye博客
本文转载自: http://blog.csdn.net/zhangxinrun/article/details/5678118. 还有一篇文章总结的也不错: http://www.kaifajie.cn/kecheng/java/7625.html借鉴一下,学习学习. 当你需要处理XML文档时,你的首要选择是使用DOM(文档对象模型)还是使用SAX(用于XML的简单API),即当前使用的两个主要的XML API.

java解析xml文件(三种方式-(dom ,jdom ,dom4j)

- - ITeye博客
第一种,利用dom方式解析xml 文件,无需jar包. //得到DOM解析器的工厂实例. //从DOM工厂中获得DOM解析器. //声明为File为了识别中文名. //得到文档名称为Student的元素的节点列表. //遍历该集合,显示结合中的元素及其子元素的名字. System.out.println("磁盘信息:");.

android解析XML总结-SAX、Pull、Dom三种方式

- - CSDN博客移动开发推荐文章
     在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式. 最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结. xml示例(channels.xml)如下:.

JavaScript DocumentFragment:更快捷的操作DOM的途径

- - WebHek
我相信很少人知道JavaScript里还有这样一个很有用的东西:DocumentFragment. 程序员可以使用DocumentFragment将一批子元素添加到任何类似node的父节点上,对这批子元素的操作不需要一个真正的根节点. 程序员可以不依赖可见的DOM来构造一个DOM结构,而 效率高是它真正的优势,试验表明,它比直接操作DOM快70%.

XMLUtils 封装通用的javascript解析XML文件

- - JavaScript - Web前端 - ITeye博客
* 加载xml文件,参数:. xmlPath:加载的xml文件路径;. * @return {Object} true 正常加载; false 加载失败. * 判断节点的是否有子节点. * @return {Object} 有子节点则返回true,否则返回false. * @return {Object} 有属性则返回true,否则返回false.