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 相关文章推荐
jquery放大镜效果超漂亮噢
Nov 15 Javascript
jQuery - css() 方法示例详解
Jan 16 Javascript
JSONP之我见
Mar 24 Javascript
简述JavaScript对传统文档对象模型的支持
Jun 16 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
js+css简单实现网页换肤效果
Dec 29 Javascript
JavaScript表单验证实例之验证表单项是否为空
Jan 10 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
Angularjs中UI Router全攻略
Jan 29 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
Sep 12 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使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
更正确的asp冒泡排序
2007/05/24 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
过期软件破解办法实例详解
2017/01/04 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
2017/10/20 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
React学习笔记之高阶组件应用
2018/06/02 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
Vue.js 事件修饰符的使用教程
2018/11/01 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
javascript设计模式 ? 中介者模式原理与用法实例分析
2020/04/20 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
Python中的两个内置模块介绍
2015/04/05 Python
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
python正则表达式面试题解答
2020/04/28 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python3获取当前目录的实现方法
2019/07/29 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
Python日志器使用方法及原理解析
2020/09/27 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
Python运算符+与+=的方法实例
2021/02/18 Python
中学生运动会口号
2014/06/07 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
会计做账心得体会
2016/01/22 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技