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 相关文章推荐
jQuery选择没有colspan属性的td的代码
Jul 06 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
js事件冒泡实例分享(已测试)
Apr 23 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
Sep 12 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
javascript基础知识讲解
Jan 11 Javascript
vue双向数据绑定原理探究(附demo)
Jan 17 Javascript
利用vue开发一个所谓的数独方法实例
Dec 21 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
May 08 Javascript
微信小程序自定义toast弹窗效果的实现代码
Nov 15 Javascript
vue.js封装switch开关组件的操作
Oct 26 Javascript
vue基于Teleport实现Modal组件
May 31 Vue.js
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
Smarty Foreach 使用说明
2010/03/23 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
PHP的5个安全措施小结
2012/07/17 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
php代码审计比较有意思的例子
2014/05/07 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
js异常捕获方法介绍
2013/04/10 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
Python遍历pandas数据方法总结
2018/02/09 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python虚拟环境的安装和配置(virtualenv,virtualenvwrapper)
2019/08/09 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
CSS3实现曲线阴影和翘边阴影
2016/05/03 HTML / CSS
优秀学生自我鉴定范例
2013/12/18 职场文书
数学系毕业生的自我评价
2014/01/10 职场文书
大学生实习思想汇报
2014/01/12 职场文书
捐书倡议书
2014/08/29 职场文书
股指期货心得体会
2014/09/13 职场文书
会计主管竞聘书
2015/09/15 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python