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 相关文章推荐
音乐播放用的的几个函数
Sep 07 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
浅谈javascript的调试
Jan 28 Javascript
简单对比分析JavaScript中的apply,call与this的使用
Dec 04 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
Jan 24 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 Javascript
VueJs 将接口用webpack代理到本地的方法
Nov 27 Javascript
Vue 组件传值几种常用方法【总结】
May 28 Javascript
vue使用Proxy实现双向绑定的方法示例
Mar 20 Javascript
如何从头实现一个node.js的koa框架
Jun 17 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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和XSL stylesheets转换XML文档
2006/10/09 PHP
php自动跳转中英文页面
2008/07/29 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
HTA版JSMin(省略修饰语若干)基于javascript语言编写
2009/12/24 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
炫酷的js手风琴效果
2016/10/13 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
Python的CGIHTTPServer交互实现详解
2018/02/08 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
python向图片里添加文字
2019/11/26 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
python与js主要区别点总结
2020/09/13 Python
用Python 执行cmd命令
2020/12/18 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
Sofmap官网:日本著名的数码电器专卖店
2017/05/19 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
中英文求职信范文
2014/01/27 职场文书
预备党员表决心书
2014/03/11 职场文书
助残日活动总结
2014/08/27 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
酒店圣诞节活动总结
2015/05/06 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书