`
charrysong
  • 浏览: 50288 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JS读取XML并显示各节点[兼容IE/FF/Chrome,Safari]

阅读更多

今天同事有需要JS显示XML!
后来就做了一个效果!或许以后能用的着呢! ^_^
JS读取并输出xml文件节点及属性(兼容IE,FF) !
好东东发出来分享一下了!

转自:http://www.ok22.org/art_detail.aspx?id=137(可直接运行)
代码如下: 

Html代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  
  5. <title>JS读取XML兼容IE/FF/Chrome,Safari</title>  
  6. <style>  
  7. li{list-style:none;}   
  8. </style>  
  9. <script type="text/javascript">  
  10. //==============================================================   
  11. var orderDoc;   
  12. //获取xml文件   
  13. function loadXmlFile(xmlFile){   
  14.   var xmlDom = null;   
  15.   if (window.ActiveXObject){   
  16.     xmlDom = new ActiveXObject("Microsoft.XMLDOM");   
  17.     xmlDom.async=false;   
  18.    xmlDom.load(xmlFile)||xmlDom.loadXML(xmlFile);//如果用的是XML字符串//如果用的是xml文件   
  19.   }else if (document.implementation && document.implementation.createDocument){   
  20.     var xmlhttp = new window.XMLHttpRequest();   
  21.     xmlhttp.open("GET", xmlFile, false);   
  22.     xmlhttp.send(null);   
  23.     xmlDom = xmlhttp.responseXML;   
  24.   }else{   
  25.     xmlDom = null;   
  26.   }   
  27.   return xmlDom;   
  28. }   
  29. //判断子节点为不为空   
  30. function isnull(obj)   
  31. {   
  32.     var nodevalue = "";   
  33.     if(obj.childNodes[0] != null)   
  34.     {   
  35.         nodevalue =obj.childNodes[0].nodeValue;   
  36.     }   
  37.     return nodevalue;   
  38. }   
  39. var stringsss="";   
  40. //根据编号获取数据   
  41. function getDataByid(number)   
  42. {   
  43.     var time =isnull(orderDoc.getElementsByTagName("time")[number]);   
  44.     var place =isnull(orderDoc.getElementsByTagName("place")[number]);   
  45.     var reason =isnull(orderDoc.getElementsByTagName("reason")[number]);   
  46.     var unit = isnull(orderDoc.getElementsByTagName("unit")[number]);   
  47.     var money =isnull(orderDoc.getElementsByTagName("money")[number]);   
  48.     var status =isnull(orderDoc.getElementsByTagName("status")[number]);   
  49.     var docNum =isnull(orderDoc.getElementsByTagName("docNum")[number]);   
  50.     var score =isnull(orderDoc.getElementsByTagName("score")[number]);   
  51.     var std='<li><b>网址:'+(time)+'<br />站名称:'+(place)+'<br />描述:'+(reason)+'</b></li>';   
  52.     return std;   
  53. }   
  54.   
  55. //获得页面内容   
  56. function getContent(){   
  57.     //exBrows();   
  58.     orderDoc=loadXmlFile("http://www.ok22.org/download/ex2.xml");   
  59.         var items=orderDoc.getElementsByTagName("results").length;   
  60.         //alert(orderDoc.getElementsByTagName("Item").length);   
  61.         var htmlstr="";   
  62.         stringsss+='<ul>';   
  63.         for(i=0;i<items;i++){   
  64.             stringsss+=getDataByid(i);   
  65.         }   
  66.         stringsss+='</ul>'   
  67.         document.write(stringsss);   
  68. }   
  69. </script>  
  70.   
  71. </head>  
  72.   
  73. <body>  
  74. </body>  
  75. <script type="text/javascript" language="javascript">  
  76. getContent();   
  77. </script>  
  78. </html>  
<!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有可能为空所以添加了一个判断节点是否为空!

Js代码
  1. //判断子节点为不为空   
  2. function isnull(obj)   
  3. {   
  4.     var nodevalue = "";   
  5.     if(obj.childNodes[0] != null)   
  6.     {   
  7.         nodevalue =obj.childNodes[0].nodeValue;   
  8.     }   
  9.     return nodevalue;   
  10. }  
分享到:
评论

相关推荐

    JS读取XML例子(兼容IE和FF).rar

    这个"JS读取XML例子(兼容IE和FF).rar"压缩包包含了一个示例,展示了如何在不依赖任何插件的情况下,使用JavaScript在Internet Explorer(IE)和Firefox(FF)等浏览器中读取XML文件。下面我们将详细探讨JavaScript...

    JS 读取Excel文件(xls) 兼容Chrome/IE/Firefox

    在JavaScript中,读取Excel文件(.xls)并兼容多种浏览器,如Chrome、IE和Firefox,是一项常见的需求。这通常涉及到文件API、ActiveXObject(针对IE)和第三方库的使用。下面将详细介绍如何实现这一功能。 首先,...

    js读取xml文件并获取文件内容

    ### JS读取XML文件并获取文件内容 #### 知识点概述 在现代Web开发中,JavaScript(简称JS)常被用于处理各种数据格式,包括XML。XML(可扩展标记语言)是一种常用的标记语言,主要用于结构化数据的存储与传输。...

    C# xml多个同名节点操作

    方便对xml中任意节(多个同名节点)点属性进行获取、设置。 /// /// 设置指定节点的属性 /// &lt;/summary&gt; /// &lt;param name="xmlContent"&gt;xml结构&lt;/param&gt; /// 父节点&lt;/param&gt; /// 父节点所处同名节点的位置 为...

    JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器

    "JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器"这一技术主题,聚焦于如何使用JavaScript(JS)在各种浏览器环境下处理Excel文件,包括古老的Internet Explorer(IE)、Firefox以及Chrome。下面我们将深入探讨这...

    QT读取xml文件将所有节点保存到treewidget中

    本篇文章将深入探讨如何在QT4中读取XML文件,并将所有节点保存到`QTreeWidget`中。 首先,我们需要导入必要的QT库,包括`QtXml`和`QtWidgets`: ```cpp #include #include #include ``` 接下来,我们需要一个...

    vb读取xml文件节点值操作实例

    以下是一个简单的VB类,演示了如何读取XML文件并获取节点值: ```vb Public Class XMLReader Private fs As New System.IO.FileStream Private ts As New System.IO.StreamReader Private currentNode As String...

    C#读取XML 的节点,以及属性

    C#作为.NET框架的主要编程语言,提供了丰富的API来处理XML文档,包括读取、写入、修改XML的节点和属性。本篇文章将深入探讨如何在C#中操作XML文件,尤其是读取XML节点和属性。 首先,我们来了解基本的XML结构。XML...

    JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)

    标题中提到的知识点为“JS读取XML文件数据并以table形式显示数据”,这涉及到几个重要的技术和概念。首先是JavaScript(简称JS),一种广泛用于网页设计和开发的脚本语言,它可以让网页具有动态交互功能。接下来是...

    c#读取xml文件增加结点删除节点并在listview中显示xml文件内容

    本文将详细介绍如何使用C#来读取XML文件、添加和删除节点,并将XML文件内容显示在ListView控件中。 首先,我们需要引入System.Xml命名空间,它包含了处理XML文档所需的所有类和方法。在C#代码中,可以使用以下语句...

    读写xml所有节点个人小结和读取xml节点的数据总结

    本篇文章将详细解释如何使用C#来读取XML文件中的所有节点以及如何在特定节点下增加或删除元素。 #### 二、读取XML节点数据 **1. 加载XML文档** 要开始读取XML文件,首先需要加载文件到`XmlDocument`对象中: ```...

    v1.2 解析XML文件 读取XML文件 保存XML文件 添加节点 删除节点 修改节点 添加属性 修改/删除属性

    功能:创建XML文件的根节点 参数:[in] sName 根节点的节点名 返回:true创建成功 false创建失败 **************************************/ bool CreateRootNode(CString sName); /************************...

    Delphi中创建简单XMl文件以及读取XML子节点下所有属性的方法

    本篇文章将详细讲解如何在Delphi中创建简单的XML文件,并介绍如何读取XML子节点下的所有属性。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等构成,...

    JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐) .zip

    总之,实现“JS读取XML文件数据并以table形式显示”的过程涉及文件读取、XML解析、DOM操作以及跨浏览器兼容性策略。通过理解这些概念和技术,我们可以创建出一个健壮且兼容性强的JavaScript应用程序。在实际项目中,...

    js 操作xml 文件 读取xml文件

    js 操作xml 文件 读取xml文件 js 操作xml 文件 读取xml文件

    用C#快速读取XML文件,并遍历

    2. **XmlDocument类**:这个类用于加载XML文件,并提供遍历XML节点的方法。例如,使用Load()方法加载XML文件,然后通过SelectNodes()或SelectSingleNode()方法查询特定节点。 3. **XPath查询**:XPath是一种在XML...

    易语言读入xml数据节点值

    5. **遍历子节点**:若需要读取子节点,可以使用循环结构配合“XML元素-&gt;获取子元素”函数,逐个处理每个子节点。 6. **错误处理**:在处理XML数据时,一定要考虑可能的错误情况,如文件不存在、XML格式错误等。...

Global site tag (gtag.js) - Google Analytics