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 相关文章推荐
在图片上显示左右箭头类似翻页的代码
Mar 04 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
Apr 26 Javascript
js调试系列 初识控制台
Jun 18 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
May 05 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
js实现PC端和移动端刮卡效果
Mar 27 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
Angular服务Request异步请求的实例讲解
Aug 13 Javascript
Vue异步组件处理路由组件加载状态的解决方案
Sep 07 Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 Javascript
Vue切换Tab动态渲染组件的操作
Sep 21 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
arguments对象
2006/11/20 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
中文输入法不触发onkeyup事件的解决办法
2014/07/09 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
canvas的神奇用法
2017/02/03 Javascript
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
node基于async/await对mysql进行封装
2019/06/20 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
如何基于javascript实现贪吃蛇游戏
2020/02/09 Javascript
python编码最佳实践之总结
2016/02/14 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
python中reader的next用法
2018/07/24 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Python如何读取、写入CSV数据
2020/07/28 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
4s店机修工岗位职责
2013/12/20 职场文书
企业内部培训方案
2014/02/04 职场文书
销售经理岗位职责
2014/03/16 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
夫妻吵架保证书
2015/05/08 职场文书
收入证明范本
2015/06/12 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
一文搞懂Redis中String数据类型
2022/04/03 Redis