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 相关文章推荐
javascript简单实现表格行间隔显示颜色并高亮显示
Nov 29 Javascript
javascript实现超炫的向上滑行菜单实例
Aug 03 Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
Nov 17 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
使用OPENLAYERS3实现点选的方法
Sep 24 Javascript
vue-cli中的webpack配置详解
Sep 25 Javascript
浅谈webpack4.x 入门(一篇足矣)
Sep 05 Javascript
swiper实现异形轮播效果
Nov 28 Javascript
angular组件间传值测试的方法详解
May 07 Javascript
聊聊JS ES6中的解构
Apr 29 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
星际争霸秘籍
2020/03/04 星际争霸
PHP二维数组的去重问题解析
2011/07/17 PHP
php获取随机数组列表的方法
2014/11/13 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
2013/01/10 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
如何对react hooks进行单元测试的方法
2019/08/14 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
Python strip lstrip rstrip使用方法
2008/09/06 Python
python追加元素到列表的方法
2015/07/28 Python
windows下ipython的安装与使用详解
2016/10/20 Python
Python 多核并行计算的示例代码
2017/11/07 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
原生python实现knn分类算法
2019/10/24 Python
Pyqt5自适应布局实例
2019/12/13 Python
Python的历史与优缺点整理
2020/05/26 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
仓库组长岗位职责
2014/01/29 职场文书
学校安全教育制度
2014/01/31 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
北京导游词
2015/02/12 职场文书
实用求职信模板范文
2019/05/13 职场文书