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判断密码强度实现思路及代码
Apr 24 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
Nov 22 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
jQuery 回调函数(callback)的使用和基础
Feb 26 Javascript
layer弹出层中H5播放器全屏出错的解决方法
Feb 21 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
Sep 27 Javascript
基于JavaScript实现每日签到打卡轨迹功能
Nov 29 Javascript
详解在网页上通过JS实现文本的语音朗读
Mar 28 Javascript
React路由鉴权的实现方法
Sep 05 Javascript
js判断非127开头的IP地址的实例代码
Jan 05 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
May 14 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP页面间传递参数实例代码
2008/06/05 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
PHP实现git部署的方法教程
2017/12/19 PHP
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
2016/09/12 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
[02:05]2014DOTA2国际邀请赛 BBC外卡赛赛后总结
2014/07/09 DOTA
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
Python脚本实现虾米网签到功能
2016/04/12 Python
Python iter()函数用法实例分析
2018/03/17 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
用python一行代码得到数组中某个元素的个数方法
2019/01/28 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
如何在python中执行另一个py文件
2020/04/30 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
美丽的珠宝配饰:SmallThings
2019/09/04 全球购物
二年级小学生评语
2014/04/21 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
2014年度考核工作总结
2014/12/24 职场文书
2015政治思想表现评语
2015/03/25 职场文书
雷锋观后感
2015/06/10 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js