javascript可以解析xml文件吗
展开全部
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>
展开全部
可以的
<?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的方法,请自行研究。
<?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的方法,请自行研究。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,跟操作htmlDOM节点一样的,如:
document.getElementById("");
document.getElementsByName("");
document.getElementsByTagName("");
……
document.getElementById("");
document.getElementsByName("");
document.getElementsByTagName("");
……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的,用DOMDocument解析xml文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询