分享一个JS操作XML实例

时间:2021-04-16

  分享一个JS操作XML实例:

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JS读取XML兼容IE/FF/Chrome,Safari -</title>
<style>
li{list-style:none;}
</style>
<script type="text/javascript">
var orderDoc;
//获取xml文件
function loadXmlFile(xmlFile){
var xmlDom = null;
if (window.ActiveXObject){
xmlDom = new ActiveXObject("Microsoft.XMLDOM");
xmlDom.async=false;
xmlDom.load(xmlFile)xmlDom.loadXML(xmlFile);//如果用的是XML字符串//如果用的是xml文件
}else if (document.implementation && document.implementation.createDocument){
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET", xmlFile, false);
xmlhttp.send(null);
xmlDom = xmlhttp.responseXML;
}else{
xmlDom = null;
}
return xmlDom;
}
//判断子节点为不为空
function isnull(obj)
{
var nodevalue = "";
if(obj.childNodes[0] != null)
{
nodevalue =obj.childNodes[0].nodeValue;
}
return nodevalue;
}
var stringsss="";
//根据编号获取数据
function getDataByid(number)
{
var time =isnull(orderDoc.getElementsByTagName("time")[number]);
var place =isnull(orderDoc.getElementsByTagName("place")[number]);
var reason =isnull(orderDoc.getElementsByTagName("reason")[number]);
var unit = isnull(orderDoc.getElementsByTagName("unit")[number]);
var money =isnull(orderDoc.getElementsByTagName("money")[number]);
var status =isnull(orderDoc.getElementsByTagName("status")[number]);
var docNum =isnull(orderDoc.getElementsByTagName("docNum")[number]);
var score =isnull(orderDoc.getElementsByTagName("score")[number]);
var std='<li><b>网址:'+(time)+'<br />站名称:'+(place)+'<br />描述:'+(reason)+'</b></li>';
return std;
}
//获得页面内容
function getContent(){
//exBrows();
orderDoc=loadXmlFile("http://www.ok22.org/download/ex2.xml");
var items=orderDoc.getElementsByTagName("results").length;
//alert(orderDoc.getElementsByTagName("Item").length);
var htmlstr="";
stringsss+='<ul>';
for(i=0;i<items;i++){
stringsss+=getDataByid(i);
}
stringsss+='</ul>'
document.write(stringsss);
}
</script>
</head>
<body>
</body>
<script type="text/javascript" language="javascript">
getContent();
</script>
</html>

  因为XML有可能为空所以添加了一个判断节点是否为空!

//判断子节点为不为空
function isnull(obj)
{
var nodevalue = "";
if(obj.childNodes[0] != null)
{
nodevalue =obj.childNodes[0].nodeValue;
}
return nodevalue;
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章