JavaScript实现将xml转换成html table表格的方法


Posted in Javascript onApril 17, 2015

本文实例讲述了JavaScript实现将xml转换成html table表格的方法。分享给大家供大家参考。具体如下:

function ConvertToTable(targetNode)
{
 // if the targetNode is xmlNode this line must be removed
 // i couldnt find a way to parse xml string to xml node
 // so i parse xml string to xml document
 targetNode = targetNode.childNodes[0];
 // first we need to create headers
 var columnCount = targetNode.childNodes[0].childNodes.length;
 var rowCount = targetNode.childNodes.length
 // name for the table
 var myTable = document.createElement("table");
 myTable.border = 1;
 myTable.borderColor ="green";
 var firstRow = myTable.insertRow();
 var firstCell = firstRow.insertCell();
 firstCell.colSpan = columnCount;
 firstCell.innerHTML = targetNode.nodeName;
 // name for the columns
 var secondRow = myTable.insertRow();
 for(var i=0;i<columnCount;i++)
 {
  var newCell = secondRow.insertCell();
  newCell.innerHTML = targetNode.childNodes[0].childNodes[i].nodeName;
 }
 // now fill the rows with data
 for(var i2=0;i2<rowCount;i2++)
 {
  var newRow = myTable.insertRow();
   for(var j=0;j<columnCount;j++)
   {
   var newCell = newRow.insertCell();
   newCell.innerHTML = targetNode.childNodes[i2].childNodes[j].firstChild.nodeValue;
   }
 }
 // i prefer to send it as string instead of a table object
 return myTable.outerHTML;
}

下面是一个简单的示例用法:

<!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>Untitled Page</title>
</head>
<body>
<script type="text/javascript">
function ConvertToTable(targetNode)
{
 // if the targetNode is xmlNode this line must be removed
 // i couldnt find a way to parse xml string to xml node
 // so i parse xml string to xml document
 targetNode = targetNode.childNodes[0];
 // first we need to create headers
 var columnCount = targetNode.childNodes[0].childNodes.length;
 var rowCount = targetNode.childNodes.length
 // name for the table
 var myTable = document.createElement("table");
 myTable.border = 1;
 myTable.borderColor ="green";
 var firstRow = myTable.insertRow();
 var firstCell = firstRow.insertCell();
 firstCell.colSpan = columnCount;
 firstCell.innerHTML = targetNode.nodeName;
 // name for the columns
 var secondRow = myTable.insertRow();
 for(var i=0;i<columnCount;i++)
 {
  var newCell = secondRow.insertCell();
  newCell.innerHTML = targetNode.childNodes[0].childNodes[i].nodeName;
 }
 // now fill the rows with data
 for(var i2=0;i2<rowCount;i2++)
 {
  var newRow = myTable.insertRow();
   for(var j=0;j<columnCount;j++)
   {
   var newCell = newRow.insertCell();
   newCell.innerHTML = targetNode.childNodes[i2].childNodes[j].firstChild.nodeValue;
   }
 }
 // i prefer to send it as string instead of a table object
 return myTable.outerHTML;
}
function loadXmlDocFromString(text)
{
 try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(text);
  return xmlDoc;
  } 
 catch(e)
  {
  try // Firefox, Mozilla, Opera, etc.
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(text,"text/xml");
  return xmlDoc;
  }
  catch(e)
  {
  alert(e.message);
  return;
  }
  }
}
var myXml = '<TableName> \
  <firstRow> \
  <field1>1</field1> \
  <field2>2</field2> \
  </firstRow> \
  <firstRow> \
  <field1>3</field1> \
  <field2>4</field2> \
  </firstRow> \
 </TableName>';
 var myDoc = loadXmlDocFromString(myXml);
document.write( ConvertToTable(myDoc));
</script>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
借用Google的Javascript API Loader来加速你的网站
Jan 28 Javascript
ExtJs使用IFrame的实现代码
Mar 24 Javascript
js 有框架页面跳转(target)三种情况下的应用
Apr 09 Javascript
jQuery实现动画效果的实例代码
May 07 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
JavaScript与jQuery实现的闪烁输入效果
Feb 18 Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 Javascript
TableSort.js表格排序插件使用方法详解
Feb 10 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
Jul 23 Javascript
微信小程序自定义tabBar组件开发详解
Sep 24 Javascript
js实现适配移动端的拖动效果
Jan 13 Javascript
你准备好迎接vue3.0了吗
Apr 28 Javascript
JavaScript实现的简单幂函数实例
Apr 17 #Javascript
js面向对象之公有、私有、静态属性和方法详解
Apr 17 #Javascript
jQuery中toggle()函数的使用实例
Apr 17 #Javascript
JQuery实现可直接编辑的表格
Apr 16 #Javascript
JS中捕获console.log()输出的方法
Apr 16 #Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 #Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 #Javascript
You might like
php流量统计功能的实现代码
2012/09/29 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
使用console进行性能测试
2015/04/27 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
基于Javascript实现的不重复ID的生成器
2016/12/25 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
详解vue-router传参的两种方式
2018/09/10 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
django1.8使用表单上传文件的实现方法
2016/11/04 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
Python 存取npy格式数据实例
2020/07/01 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
青岛海底世界导游词
2015/02/11 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
教务处干事工作总结
2015/08/14 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书