avascript读取XML(兼容所有浏览器)
2011-05-26 13:51
477 查看
网页代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<link type="text/css" rel="stylesheet" href="css/main.css" />
</head>
<body>
<div id="menulist" style="margin:10px 0 0 0;"><div style="width:187px;height:39px;background:url('images/menu_00.jpg');"></div></div>
<script type="text/javascript">
function loadXML(xmlFile) {
var xmlDoc;
if (window.ActiveXObject){//兼容IE浏览器
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=false;;//关闭异步加载,如许可确保在文档完整加载之前,解析器不会继续执行剧本
xmlDoc.load(xmlFile);//告知解析器加载名为 xmlfile 的文档
xmlDoc=xmlDoc.documentElement;//获取XML文档中的根元素
}
else if (document.implementation && document.implementation.createDocument){
xmlDoc=document.implementation.createDocument(""," ",null);//兼容火狐浏览器
xmlDoc.async=false;//关闭异步加载,如许可确保在文档完整加载之前,解析器不会继续执行剧本
xmlDoc.load(xmlFile);//告知解析器加载名为 xmlfile 的文档
xmlDoc=xmlDoc.documentElement;//获取XML文档中的根元素
}
else
{
xmlDoc=null;
}
}
xmlDoc=loadXML("menuList.xml");
var menus=xmlDoc.documentElement.getElementsByTagName("info");
var htmlText="<ul>";
for(i=0;i<menus.length;i++)
{
var category=menus[i].childNodes[0].text;
var model=menus[i].childNodes[1].text;
var mlink=menus[i].childNodes[2].text;
htmlText+="<li><a href='"+mlink+"'>"+category+"</a></li>";
}
htmlText+="</ul>";
document.getElementById('menulist').innerHTML+=htmlText;
</script>
</body>
</html>
XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<bmenu>
<info>
<category>Nokia/诺基亚</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Samsung/三星</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Lenovo/联想</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>BIRD/波导</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Motorola/摩托罗拉</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Coolpad/酷派</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Gionee/金立</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
</bmenu>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>无标题页</title>
<link type="text/css" rel="stylesheet" href="css/main.css" />
</head>
<body>
<div id="menulist" style="margin:10px 0 0 0;"><div style="width:187px;height:39px;background:url('images/menu_00.jpg');"></div></div>
<script type="text/javascript">
function loadXML(xmlFile) {
var xmlDoc;
if (window.ActiveXObject){//兼容IE浏览器
xmlDoc = new ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=false;;//关闭异步加载,如许可确保在文档完整加载之前,解析器不会继续执行剧本
xmlDoc.load(xmlFile);//告知解析器加载名为 xmlfile 的文档
xmlDoc=xmlDoc.documentElement;//获取XML文档中的根元素
}
else if (document.implementation && document.implementation.createDocument){
xmlDoc=document.implementation.createDocument(""," ",null);//兼容火狐浏览器
xmlDoc.async=false;//关闭异步加载,如许可确保在文档完整加载之前,解析器不会继续执行剧本
xmlDoc.load(xmlFile);//告知解析器加载名为 xmlfile 的文档
xmlDoc=xmlDoc.documentElement;//获取XML文档中的根元素
}
else
{
xmlDoc=null;
}
}
xmlDoc=loadXML("menuList.xml");
var menus=xmlDoc.documentElement.getElementsByTagName("info");
var htmlText="<ul>";
for(i=0;i<menus.length;i++)
{
var category=menus[i].childNodes[0].text;
var model=menus[i].childNodes[1].text;
var mlink=menus[i].childNodes[2].text;
htmlText+="<li><a href='"+mlink+"'>"+category+"</a></li>";
}
htmlText+="</ul>";
document.getElementById('menulist').innerHTML+=htmlText;
</script>
</body>
</html>
XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<bmenu>
<info>
<category>Nokia/诺基亚</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Samsung/三星</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Lenovo/联想</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>BIRD/波导</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Motorola/摩托罗拉</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Coolpad/酷派</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
<info>
<category>Gionee/金立</category>
<model>3610A</model>
<mlink>kk.html</mlink>
</info>
</bmenu>
相关文章推荐
- javascript读取XML(兼容所有浏览器)
- javascript读取xml的解法,兼容多浏览器
- 多浏览器兼容的Javascript读取XML节点方法
- js读取本地xml文件 兼容IE Firfox Chrome 等浏览器
- JS加载XML兼容所有浏览器
- 利用POI读取Excel数据,实现同时读取多个Excel文件,兼容所有浏览器
- 简单几步原生javascript实现元素拖拽功能兼容所有浏览器
- 纯CSS打造一个顶部工具条(兼容所有浏览器)
- 兼容不同版本浏览器及版本号来创建XMLHttpRequest对象
- Html导出Excel文件(兼容所有浏览器,支持设置文件名)
- JavaScript获取浏览器的回车事件(兼容所有浏览器)
- 兼容所有浏览器的瀑布流的实现
- 解析ajax核心XMLHTTPRequest对象的创建与浏览器的兼容问题
- 读写xml所有节点个人小结和读取xml节点的数据总结
- 实现背景透明,文字不透明,兼容所有浏览器
- 解决Js解析xml浏览器不兼容问题及省市区三级联动实现
- 兼容所有浏览器的CSS3圆角
- 兼容所有浏览器的自动换行
- CSS左侧固定宽 右侧自适应(兼容所有浏览器)
- JS 清空input file的值,兼容所有主流浏览器