`
charrysong
  • 浏览: 50715 次
  • 性别: 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读取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; /// 父节点所处同名节点的位置 为...

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

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

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

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

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

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

    C#读取XML文件并显示在DataGrid组件中

    本教程将深入探讨如何使用C#读取XML文件并将其内容展示在DataGrid组件上,这是一个常见且实用的功能,尤其适用于数据展示和管理。 首先,我们需要引入必要的命名空间,包括`System.Xml`用于处理XML文件,以及`...

    javascript读取XML文件方法

    ### JavaScript读取XML文件的方法详解 #### 一、引言 在现代Web开发中,XML(可扩展标记语言)作为一种轻量级的数据交换格式,在早期的Web应用中扮演着重要的角色。JavaScript作为前端的主要编程语言之一,具备强大...

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

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

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

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

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

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

    xpath读取XML节点

    在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath表达式来读取XML文档的节点。 首先,理解XPath的基本语法是非常重要的。XPath表达式由路径表达式组成,...

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

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

    Linq to xml,读取XMl节点值

    在本篇文章中,我们将深入探讨如何使用 LINQ to XML 来读取 XML 节点值,并将其绑定到应用程序中的不同组件,如 Windows Forms 控件。 1. **XML 基础** 在讨论 LINQ to XML 之前,我们先要了解 XML(Extensible ...

    一个C#处理XML的类

    /// 读取xml文档并返回一个节点:适用于一级节点 /// /// 适应用Xml:&lt;?xml version="1.0" encoding="utf-8" ?&gt; /// &lt;root&gt; /// &lt;dns1&gt;ns1.everdns.com&lt;/dns1&gt; /// &lt;/root&gt; /// /// 使用示列: /// ...

    js 操作xml 文件 读取xml文件

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

    JS读取XML实例.zip

    总的来说,通过JavaScript读取XML文件需要异步加载XML数据,然后使用DOM解析XML字符串。在实际项目中,还可以考虑使用jQuery、axios等库来简化XML处理。同时,理解XML和DOM的概念对于JavaScript开发者来说是非常重要...

    xml.zip_matlab读取xml文件实例_xml文件读取

    `xmlread`用于读取XML文件并将其转换为一个文档对象模型(DOM)树,而`xmlwrite`则可以将DOM树写回到XML文件。DOM树是一种数据结构,它代表了XML文件的整个内容,允许我们遍历和修改文件的各个部分。 例如,假设...

Global site tag (gtag.js) - Google Analytics