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 相关文章推荐
另类调用flash无须激活的方法
Dec 27 Javascript
jQuery ready函数滥用分析
Feb 16 Javascript
wap浏览自动跳转到wap页面的js代码
May 17 Javascript
javascript实现五星评价代码(源码下载)
Aug 11 Javascript
JavaScript获取浏览器信息的方法
Nov 20 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
JS实现“隐藏与显示”功能(多种方法)
Nov 24 Javascript
微信小程序 require机制详解及实例代码
Dec 14 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
Jan 22 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下过滤HTML代码的函数
2007/12/10 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
js改变Iframe中Src的方法
2015/05/05 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
2016/09/20 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
node app 打包工具pkg的具体使用
2019/01/17 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
八年级语文教学反思
2014/02/11 职场文书
规划编制实施方案
2014/03/15 职场文书
社区党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
酒店宣传语大全
2015/07/13 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL