javascript可以解析xml文件吗

 我来答
黑马程序员
2017-03-13 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部

JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来。

注:测试的时候需要在网站中测试,iis或apache中,注意不要本地双击运行测试

index.htm代码如下:

 
<html> 
<head> 
<title>解析XML</title> 
<script type="text/javascript"> 
function show() 

if (window.XMLHttpRequest) 

xmlhttp=new XMLHttpRequest(); 

else 

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 

if(xmlhttp!=null) 

xmlhttp.open("GET","aaa51.xml",false); 
xmlhttp.send(null); 
var responsexml=xmlhttp.responseXML; 
var menus=responsexml.getElementsByTagName("Menus")[0]; 
var html=""; 
for(var i=0;i<menus.childNodes.length;i++) 

var menu=menus.childNodes[i]; 
html=html+"<h1>"+menu.getAttribute("name")+"</h1><br>"; 
html=html+"<h2>"+menu.childNodes[0].getAttribute("name")+"</h2><br>"; 
for(var j=0;j<menu.childNodes[0].childNodes.length;j++) 

var mi=menu.childNodes[0].childNodes[j]; 
var url=mi.getAttribute("url"); 
var txt=mi.childNodes[0].nodeValue; 
html=html+" <a href=\""+url+"\">"+txt+"</a><br>"; 


document.getElementById("tb").innerHTML=html; 

else 

alert("你用的什么浏览器?"); 


</script> 
</head> 
<body onload="show()"> 
<div id="tb"></div> 
</body> 
</html>

XML代码如下:

 
<?xml version="1.0" encoding="utf-8"?> 
<Menus> 
<Menu id="0" name="首页"> 
<MenuItemTitle sid="01" mid="0" name="常用选项"> 
<MenuItem mid="0" tid="01" url="Home.aspx">后台首页</MenuItem> 
<MenuItem mid="0" tid="01" url="Test.aspx">测试页</MenuItem> 
</MenuItemTitle> 
</Menu> 
<Menu id="0" name="试试"> 
<MenuItemTitle sid="01" mid="0" name="常用选项"> 
<MenuItem mid="0" tid="01" url="Home.aspx">后台首页</MenuItem> 
<MenuItem mid="0" tid="01" url="Test.aspx">测试页</MenuItem> 
</MenuItemTitle> 
</Menu> 
</Menus>
李忄彬
2016-12-05 · 超过16用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:6万
展开全部
可以的
<?xml versoin="1.0"?>
<root>
<books id="list">
<item id='js'>
<name>javascript教程</name>
<price>50</price>
</item>
<item id='java'>
<name>java教程</name>
<price>70</price>
<item>
</books>
</root>

<script type="text/javascript">
<!--
var dom = new ActiveXObject('Microsoft.XMLDOM'); // 得到XML操作对象

// 加载 xml 有两种方法
// 方法一
//dom.load('XML文件的路径');
// 方法二
dom.loadXML('XML文件的内容'); // 此处就是上面XML的内容

// 比如我要得到上面XML文件中所有书的列表
var bookList = dom.selectNodeList('root/books/item'); // 这里采用 xPath,自己去了解吧
// 得到的 bookList 值为
// <item>
// <name>javascript教程</name>
// <price>50</price>
// </item>
// <item>
// <name>java教程</name>
// <price>70</price>
// <item>

// 比如我要选择 javascript 教程
var js = dom.selectSingleNode('root/books/item[id="js"]'); // xPath
// 得到的 js 值为
// <item>
// <name>javascript教程</name>
// <price>50</price>
// </item>

//-->
</script>

当然还有好多方法,好多东西,这里就不写太多了,自己去慢慢研究吧。
上面只是用了 xpath 办法,毕竟这个检索的效率高,速度快,当然还可以一级一级节点往下遍历。
一楼说的 ajax 也可以操作 xml,二楼说的 getElementsByTagName('tag') 这也是一个检索XML的方法,请自行研究。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
timechenghy
2016-12-26 · TA获得超过327个赞
知道答主
回答量:48
采纳率:0%
帮助的人:5.4万
展开全部
可以,跟操作htmlDOM节点一样的,如:
document.getElementById("");
document.getElementsByName("");
document.getElementsByTagName("");
……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0d188d0
2016-12-13 · TA获得超过110个赞
知道小有建树答主
回答量:90
采纳率:100%
帮助的人:46.1万
展开全部
可以的,用DOMDocument解析xml文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式