今天同事有需要JS显示XML!
后来就做了一个效果!或许以后能用的着呢! ^_^
JS读取并输出xml文件节点及属性(兼容IE,FF) !
好东东发出来分享一下了!
转自:http://www.ok22.org/art_detail.aspx?id=137(可直接运行)
代码如下:
- <!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>
<!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;
- }
分享到:
相关推荐
这个"JS读取XML例子(兼容IE和FF).rar"压缩包包含了一个示例,展示了如何在不依赖任何插件的情况下,使用JavaScript在Internet Explorer(IE)和Firefox(FF)等浏览器中读取XML文件。下面我们将详细探讨JavaScript...
在JavaScript中,读取Excel文件(.xls)并兼容多种浏览器,如Chrome、IE和Firefox,是一项常见的需求。这通常涉及到文件API、ActiveXObject(针对IE)和第三方库的使用。下面将详细介绍如何实现这一功能。 首先,...
### JS读取XML文件并获取文件内容 #### 知识点概述 在现代Web开发中,JavaScript(简称JS)常被用于处理各种数据格式,包括XML。XML(可扩展标记语言)是一种常用的标记语言,主要用于结构化数据的存储与传输。...
方便对xml中任意节(多个同名节点)点属性进行获取、设置。 /// /// 设置指定节点的属性 /// </summary> /// <param name="xmlContent">xml结构</param> /// 父节点</param> /// 父节点所处同名节点的位置 为...
"JS导入导出Excel 兼容IE、Firefox、Chrome等浏览器"这一技术主题,聚焦于如何使用JavaScript(JS)在各种浏览器环境下处理Excel文件,包括古老的Internet Explorer(IE)、Firefox以及Chrome。下面我们将深入探讨这...
本篇文章将深入探讨如何在QT4中读取XML文件,并将所有节点保存到`QTreeWidget`中。 首先,我们需要导入必要的QT库,包括`QtXml`和`QtWidgets`: ```cpp #include #include #include ``` 接下来,我们需要一个...
以下是一个简单的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#作为.NET框架的主要编程语言,提供了丰富的API来处理XML文档,包括读取、写入、修改XML的节点和属性。本篇文章将深入探讨如何在C#中操作XML文件,尤其是读取XML节点和属性。 首先,我们来了解基本的XML结构。XML...
标题中提到的知识点为“JS读取XML文件数据并以table形式显示数据”,这涉及到几个重要的技术和概念。首先是JavaScript(简称JS),一种广泛用于网页设计和开发的脚本语言,它可以让网页具有动态交互功能。接下来是...
本文将详细介绍如何使用C#来读取XML文件、添加和删除节点,并将XML文件内容显示在ListView控件中。 首先,我们需要引入System.Xml命名空间,它包含了处理XML文档所需的所有类和方法。在C#代码中,可以使用以下语句...
本篇文章将详细解释如何使用C#来读取XML文件中的所有节点以及如何在特定节点下增加或删除元素。 #### 二、读取XML节点数据 **1. 加载XML文档** 要开始读取XML文件,首先需要加载文件到`XmlDocument`对象中: ```...
功能:创建XML文件的根节点 参数:[in] sName 根节点的节点名 返回:true创建成功 false创建失败 **************************************/ bool CreateRootNode(CString sName); /************************...
本篇文章将详细讲解如何在Delphi中创建简单的XML文件,并介绍如何读取XML子节点下的所有属性。 首先,让我们了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)等构成,...
总之,实现“JS读取XML文件数据并以table形式显示”的过程涉及文件读取、XML解析、DOM操作以及跨浏览器兼容性策略。通过理解这些概念和技术,我们可以创建出一个健壮且兼容性强的JavaScript应用程序。在实际项目中,...
js 操作xml 文件 读取xml文件 js 操作xml 文件 读取xml文件
2. **XmlDocument类**:这个类用于加载XML文件,并提供遍历XML节点的方法。例如,使用Load()方法加载XML文件,然后通过SelectNodes()或SelectSingleNode()方法查询特定节点。 3. **XPath查询**:XPath是一种在XML...
5. **遍历子节点**:若需要读取子节点,可以使用循环结构配合“XML元素->获取子元素”函数,逐个处理每个子节点。 6. **错误处理**:在处理XML数据时,一定要考虑可能的错误情况,如文件不存在、XML格式错误等。...