分别针对ie和火狐分别作了对xml文档和xml字符串的解析,所有代码都注释掉了,想看哪部分功能,去掉注释就可以了。
至于在ajax环境下解析xml,其实原理是一样的,只不过放在了ajax里,还是要对返回的xml进行解析。
复制代码 代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Author" content="lushuaiyin">
</head>
<body>
用js解析xml文档和xml字符串
</body>
</html>
<script>
//解析xml文档/////////////////////////////////////////////////////
var xmlDoc=null;
//支持IE浏览器
if(window.ActiveXObject){
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
//支持Mozilla浏览器
else if(document.implementation && document.implementation.createDocument){
xmlDoc = document.implementation.createDocument('','',null);
}
else{
alert("here");
}
if(xmlDoc!=null){
xmlDoc.async = false;
xmlDoc.load("house.xml");
}
//ie和火狐不仅解析器不一样,解析过程也不一样。如下;
//ie解析xml文档
//alert(xmlDoc.getElementsByTagName("address")[0].childNodes[0].childNodes[0].childNodes[0].nodeValue);//弹出150万
//alert(xmlDoc.getElementsByTagName("address")[0].childNodes[0].childNodes[1].childNodes[0].nodeValue);//弹出一室三居
//层层遍历解析childNodes[1]
//alert(xmlDoc.childNodes[1].childNodes[1].childNodes[0].childNodes[0].nodeValue);//弹出200万
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[0].childNodes[0].nodeValue);//弹出150万
//alert(xmlDoc.childNodes[1].childNodes[0].childNodes[1].childNodes[0].nodeValue);//弹出一室三居
//还可以用item(i)进行遍历
//var nodes=xmlDoc.documentElement.childNodes;
//alert(nodes.item(0).childNodes.item(0).childNodes.item(0).text); //弹出150万
//alert(nodes.item(0).childNodes.item(1).childNodes.item(0).text); //弹出一室三居
//火狐解析xml文档
//火狐浏览器和ie解析xml不一样节点的值用textContent。
//并且他会在有的层次child节点前后都加上"\n"换行符。(这个搞不清楚为什么,用firebug调试的时候就是这个样子,所以写过的代码最好测试一下,换个环境就不对了)
//也就是说第1个节点是"\n",第2个节点才是真正的第一个节点。
//第3个节点是"\n",第4个节点才是真正的第二个节点。
//层层获取解析childNodes[0]
//alert(xmlDoc.childNodes[0].childNodes[1].childNodes[1].textContent);//弹出150万
//alert(xmlDoc.childNodes[0].childNodes[1].childNodes[3].textContent);//弹出一室三居
//直接获取节点名解析getElementsByTagName("address")
//alert(xmlDoc.getElementsByTagName("address")[0].textContent);//弹出150万 一室三居 200万 300万
//alert(xmlDoc.getElementsByTagName("address")[0].childNodes[1].textContent);//弹出150万 一室三居
//alert(xmlDoc.getElementsByTagName("address")[0].childNodes[1].childNodes[1].textContent);//弹出150万
//alert(xmlDoc.getElementsByTagName("address")[0].childNodes[1].childNodes[3].textContent);//弹出一室三居
//alert(xmlDoc.getElementsByTagName("address")[0].childNodes[3].textContent);//弹出200万
//火狐也可以用item(1)函数遍历,注意也是有的层次节点前后都加了节点"\n"。
//第一个节点是item(1),第二个节点是item(3),第三个节点是item(5)
//item(1)函数遍历解析
//var nodes=xmlDoc.documentElement.childNodes;
//alert(nodes.item(1).textContent); //弹出150万 一室三居
//alert(nodes.item(1).childNodes.item(1).textContent); //弹出150万
//alert(nodes.item(1).childNodes.item(3).textContent); //一室三居
//解析xml字符串/////////////////////////////////////////////////////////////////////////
var str="<car>"+
"<brand><price>50万</price><pattern>A6</pattern></brand>"+
"<brand><price>65万</price><pattern>A8</pattern></brand>"+
"<brand><price>17万</price></brand>"+
"</car>";
//跨浏览器,ie和火狐解析xml使用的解析器是不一样的。
var xmlStrDoc=null;
if (window.DOMParser){// Mozilla Explorer
parser=new DOMParser();
xmlStrDoc=parser.parseFromString(str,"text/xml");
}else{// Internet Explorer
xmlStrDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlStrDoc.async="false";
xmlStrDoc.loadXML(str);
}
//ie解析xml字符串
//alert(xmlStrDoc.getElementsByTagName("car")[0].childNodes[0].childNodes[0].childNodes[0].nodeValue);//弹出50万
//alert(xmlStrDoc.getElementsByTagName("car")[0].childNodes[0].childNodes[1].childNodes[0].nodeValue);//弹出A6
//还可以用item(i)进行遍历
//var strNodes=xmlStrDoc.documentElement.childNodes;
//alert(strNodes.item(0).childNodes.item(0).childNodes.item(0).text); //弹出50万
//alert(strNodes.item(0).childNodes.item(1).childNodes.item(0).text); //弹出A6
//火狐解析xml字符串
//火狐浏览器和ie解析xml不一样节点的值用textContent。
//并且他会在有的层次child节点前后都加上"\n"换行符。
//也就是说第1个节点是"\n",第2个节点才是真正的第一个节点。
//第3个节点是"\n",第4个节点才是真正的第二个节点。
//alert(xmlStrDoc.childNodes[0].childNodes[1].textContent);//弹出65万 A8
//alert(xmlStrDoc.childNodes[0].childNodes[1].childNodes[1].textContent);//A8
//alert(xmlStrDoc.childNodes[0].childNodes[1].childNodes[0].textContent);//弹出65万
//火狐也可以用item(1)函数遍历,注意也是有的层次节点前后都加了节点"\n"。
//第一个节点是item(1),第二个节点是item(3),第三个节点是item(5)
//var nodes=xmlStrDoc.documentElement.childNodes;
//alert(nodes.item(1).textContent); //弹出65万 A8
//alert(nodes.item(1).childNodes.item(0).textContent); //弹出65万
//alert(nodes.item(1).childNodes.item(1).textContent); //弹出A8
</script>
其中xml每个节点所在层次是最烦人的问题,只能一次次去试,只要出来一个正确的,
就很好确定节点的层次关系了,或者debug一下。
感觉这方面json还是更好阅读和理解。这个解析太费劲了 复制代码 代码如下:
<?xml version="1.0" encoding="utf-8" ?>
<address>
<city name="北京">
<price>150万</price>
<type>一室三居</type>
</city>
<city name="上海">
<price>200万 </price>
</city>
<city name="杭州">
<price>230万</price>
</city>
<city name="南京"></city>
</address>
相关推荐:
SEO很多,如何在竞争激烈的市场中脱颖而出?,在SEO优化中
在线AI写文:开启高效创作新时代
ChatGPTWindows版本下载:让AI助力您的工作和生活,ai yamama
GoogleSEO打满分自然流量会高吗?揭开SEO优化的真相,猪插画ai
用AI写文章,释放你的创作潜力!
文章AI生成标题:让创作更轻松,内容更精彩
自动生成文章的AI软件,助力内容创作的未来
SEO与SEM:谁才是提升网站流量的王者?,Ai中字体如何变形立体
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
摘要AI生成:高效工作的新时代利器
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径
在线AI文章生成:智能写作的无限可能
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai
ChatGPT界面看不到用户:隐秘的互动方式与智慧的背后,AI和UR
创作新时代:自动生成文章AI的魅力与未来
ChatGPT无法使用?了解原因及解决方法,轻松恢复智能对话体验!,ai满版图案
seo需要了解什么,seo需要学些什么内容 ,ovo ai
AI生成文章免费工具,让创作变得轻松又高效,ai安心健
SEO优化:如何让网站更具有吸引力,散文ai写作咒语是什么
seo需要干什么,seo需要具备什么知识 ,ai梦境档案世岛大宅
SEO收费如何选择合适的SEO服务,提升网站排名并增加曝光度,做网站优化哪家实惠
SEO关键词利器:如何借助精准关键词提升网站流量与排名,ai绘画客户
SEO架构:提升网站流量的核心策略,东营南江全平台营销推广
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
seo网站是什么找行者SEO,seo分析网站 ,ai图文梅花
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
交友群都有哪些,交友群是干什么的 ,ai猫csgo
自动AI写文章:轻松创作时代的全新利器
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
ChatGPT:引领人工智能对话新时代的智能助手,Ai shiang
ChatGPT的VPN梯子:畅享全球互联网自由,打破地域限制,一直搜Ai
如何用AI写公众号文章?让创作更高效、更轻松
SEO关键词是什么意思?全面解析SEO关键字的核心作用,华为ai音箱 百度ai音箱
《“查看更多”背后的秘密:让你的人生更加丰富多彩!》,宁安公司网站建设
SEO软优化:助力网站实现流量爆发的秘密武器,延平区网页seo
ChatGPT4网页空白:重新定义智能交互的未来,怎么登ai
优化高效率:提升个人与企业竞争力的关键,安康网站推广咨询
未来写作新方式原创AI文章的无限可能
AI网页效果生成:开启网站设计的新纪元,ai画线祥云
UCMS:引领智慧医疗新时代,打造数字化健康未来,推广工作谈营销
SEO优化排-打造高效的网络营销利器,精神AI
SEO与网络推广机构:如何选择最适合你的数字营销合作伙伴,ai写作软件性价比高吗
SEO搜索关键词是什么意思?全方位解析关键词优化的核心要素,lol ai图片
为什么选择收录网站是企业在线营销的必备策略,全网营销与推广
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
SEO是什么意思?揭秘SEO的真正含义与重要性,公司推广网站询问d火18星来
SEO总计:如何通过SEO优化实现网站流量和排名的飞跃,三元桥网站优化
SEO目的:如何通过精准优化提高网站流量与转化率,百度推广网站关键词
乘风SEO-引领企业互联网时代的腾飞之路,南昌b站关键词排名优化贵不贵