[原]JavaScript 读取XML 通用类 兼容IE与众浏览器
2009-06-18 20:32
417 查看
XMLDOM能很好的处理XML文档,但是IE和Firefox等浏览器存在相当大的差异,此类综合了处理方法,使之兼容于各浏览器
本类基于XML DOM,只处理了各浏览器之间不兼容的部份,并不能完整应用于XML处理,使用之前你必须了解XML DOM,相关资料请查阅网络
本类方法:
XML.load(url) 载入XML文件 返回XML对象
XML.loadXML(XMLString) 载入XML字串 返回XML对象
XML.childNodes(node) 取得一个node的子节点 返回对象数组 //主要是过滤了Firefox中讨厌的空节点
XML.xml(node) 取得一个node的格式化文本 返回string //就是IE.xml了,FF中没有此方法
XML.text(node) 取得一个node的值 返回string //FF中也没有此方法
XML.selectSingleNode(node,xpath) 利用xpath取得node下面第一个匹配的节点 返回node对象 //各有方法统一到IE的DOM中
XML.selectNodes(node,xpath) 利用XPath取得node下面所有匹配的节点 返回node对象集 //各有方法统一到IE的DOM中
三省市联动的示例
<script src="jquery.js"></script>
<script src="xml.js"></script>
<style type="text/css">
select {width:150px}
</style>
<script type="text/javascript">
<!--
$(function(){
var xml=XML.load("city1.xml");
var xmldoc=xml.documentElement;//根层
var nodes=XML.selectNodes(xmldoc,"//Item[@pid='0']");//取xpath节点
for(var i=0;i<nodes.length;i++)
$("<option/>").val(nodes[i].getAttribute("id")).text(nodes[i].getAttribute("value")).appendTo($("select[name='addr1']"));
$("select[name='addr1']").change(function(){
// 联动第二层
select_change(this.value,'addr2');
$("select[name='addr2']").change();
});
$("select[name='addr2']").change(function(){
//联动第三层
select_change(this.value,"addr3");
});
$("select[name='addr1']").change();
$("select[name='addr2']").change();
function select_change(value,o){
$("select[name='"+o+"']").empty();
var nodes=XML.selectNodes(xmldoc,"//Item[@pid='"+value+"']");
for(var i=0;i<nodes.length;i++)
$("<option/>").val(nodes[i].getAttribute("id")).text(nodes[i].getAttribute("value")).appendTo($("select[name='"+o+"']"));
};
});
//-->
</script>
</head>
<body>
<select name="addr1"></select>
<select name="addr2"></select>
<select name="addr3"></select>
下载点这里
演示点这里
本类基于XML DOM,只处理了各浏览器之间不兼容的部份,并不能完整应用于XML处理,使用之前你必须了解XML DOM,相关资料请查阅网络
本类方法:
XML.load(url) 载入XML文件 返回XML对象
XML.loadXML(XMLString) 载入XML字串 返回XML对象
XML.childNodes(node) 取得一个node的子节点 返回对象数组 //主要是过滤了Firefox中讨厌的空节点
XML.xml(node) 取得一个node的格式化文本 返回string //就是IE.xml了,FF中没有此方法
XML.text(node) 取得一个node的值 返回string //FF中也没有此方法
XML.selectSingleNode(node,xpath) 利用xpath取得node下面第一个匹配的节点 返回node对象 //各有方法统一到IE的DOM中
XML.selectNodes(node,xpath) 利用XPath取得node下面所有匹配的节点 返回node对象集 //各有方法统一到IE的DOM中
三省市联动的示例
<script src="jquery.js"></script>
<script src="xml.js"></script>
<style type="text/css">
select {width:150px}
</style>
<script type="text/javascript">
<!--
$(function(){
var xml=XML.load("city1.xml");
var xmldoc=xml.documentElement;//根层
var nodes=XML.selectNodes(xmldoc,"//Item[@pid='0']");//取xpath节点
for(var i=0;i<nodes.length;i++)
$("<option/>").val(nodes[i].getAttribute("id")).text(nodes[i].getAttribute("value")).appendTo($("select[name='addr1']"));
$("select[name='addr1']").change(function(){
// 联动第二层
select_change(this.value,'addr2');
$("select[name='addr2']").change();
});
$("select[name='addr2']").change(function(){
//联动第三层
select_change(this.value,"addr3");
});
$("select[name='addr1']").change();
$("select[name='addr2']").change();
function select_change(value,o){
$("select[name='"+o+"']").empty();
var nodes=XML.selectNodes(xmldoc,"//Item[@pid='"+value+"']");
for(var i=0;i<nodes.length;i++)
$("<option/>").val(nodes[i].getAttribute("id")).text(nodes[i].getAttribute("value")).appendTo($("select[name='"+o+"']"));
};
});
//-->
</script>
</head>
<body>
<select name="addr1"></select>
<select name="addr2"></select>
<select name="addr3"></select>
下载点这里
演示点这里
相关文章推荐
- javascript读取xml,兼容火狐和ie各个版本
- 兼容IE和firefox 操作XML的 javascript
- js 读取xml 兼容ff和ie
- js + php 读取、播放视频流 兼容firefox,chrome,ie,mac的safari,ios的safari,ios的微信浏览器(curl读取文件流篇) 分类: php javascript 浏览器兼容 safari 视频流 jwplayer6
- Javascript解析xml字符串,兼容firefox和ie
- JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
- 兼容IE和Firefox的JS读取XML文档例子
- [JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)
- javascript读写XML实现广告轮换(兼容IE、FF)
- 用Javascript读取CheckBox数组的值的代码(兼容IE与firefox)
- javascript读取xml的解法,兼容多浏览器
- JS读取XML文件数据并以table显示数据(兼容IE火狐)
- 多浏览器兼容的Javascript读取XML节点方法
- 用javascript操作xml(三)关于Jquery的html()不兼容IE的解决办法
- JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
- js读取本地xml文件 兼容IE Firfox Chrome 等浏览器
- IE 兼容 Javascript 读取checkbox的值
- javascript解析xml文件。兼容IE、firefox、Chrome
- Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)