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 相关文章推荐
JS数学函数Exp使用说明
Aug 09 Javascript
简单实用的反馈表单无刷新提交带验证
Nov 15 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
jQuery 中$(this).index与$.each的使用指南
Nov 20 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
jQuery插件WebUploader实现文件上传
Nov 07 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
Jul 20 Javascript
JavaScript数组去重的多种方法(四种)
Sep 19 Javascript
详解React开发必不可少的eslint配置
Feb 05 Javascript
js中switch语句的学习笔记
Mar 25 Javascript
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
理解JavaScript中的对象
Aug 25 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
模仿OSO的论坛(二)
2006/10/09 PHP
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP 反向排序和随机排序代码
2010/06/30 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
JavaScript访问CSS属性的几种方式介绍
2014/07/21 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
深入了解Hybrid App技术的相关知识
2019/07/17 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
pygame实现俄罗斯方块游戏
2018/06/26 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
基于matplotlib xticks用法详解
2020/04/16 Python
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
法学专业个人求职信
2013/09/26 职场文书
4s店机修工岗位职责
2013/12/20 职场文书
恶搞卫生巾广告词
2014/03/18 职场文书
文案策划专业自荐信
2014/07/07 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
个人政治思想总结
2015/03/05 职场文书
校园安全教育心得体会
2016/01/15 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
springboot读取nacos配置文件
2022/05/20 Java/Android