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 相关文章推荐
地址栏上的一段语句,改变页面的风格。(教程)
Apr 02 Javascript
Jquery从头学起第四讲 jquery入门教程
Aug 01 Javascript
node.js中的emitter.on方法使用说明
Dec 10 Javascript
js/jquery判断浏览器类型的方法小结
May 12 Javascript
如何用js实现鼠标向上滚动时浮动导航
Jul 18 Javascript
使用Node.js实现简易MVC框架的方法
Aug 07 Javascript
关于在mongoose中填充外键的方法详解
Aug 14 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
Oct 11 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
如何在面试中手写出javascript节流和防抖函数
Oct 22 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 防注入函数(格式化数据)
2011/08/08 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
Javascript 日期处理之时区问题
2009/10/08 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
深入理解vue中的$set
2017/06/01 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
Python使用Flask框架获取当前查询参数的方法
2015/03/21 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
Python3 log10()函数简单用法
2019/02/19 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
python搜索包的路径的实现方法
2019/07/19 Python
python滑块验证码的破解实现
2019/11/10 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
详解python程序中的多任务
2020/09/16 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
环保公益广告语
2014/03/13 职场文书
学习型班组申报材料
2014/05/31 职场文书
视光学专业自荐信
2014/06/24 职场文书
员工安全责任书范本
2014/07/24 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS