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 相关文章推荐
Dom操作之兼容技巧分享
Sep 20 Javascript
jquery validate poshytip 自定义样式
Nov 26 Javascript
js修改table中Td的值(定义td的单击事件)
Jan 10 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
May 15 Javascript
基于jPlayer三分屏的制作方法
Dec 21 Javascript
数组Array的排序sort方法
Feb 17 Javascript
分析JavaScript数组操作难点
Dec 18 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
May 08 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
May 14 Javascript
微信小程序设置滚动条过程详解
Jul 25 Javascript
基于vue和bootstrap实现简单留言板功能
May 30 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
Snoopy类使用小例子
2008/04/15 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
jQuery+AJAX实现遮罩层登录验证界面(附源码)
2020/09/13 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
解决vant的Toast组件时提示not defined的问题
2020/11/11 Javascript
小程序实现tab标签页
2020/11/16 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
python机器人运动范围问题的解答
2019/04/29 Python
Django后台admin的使用详解
2019/07/08 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
大专生的学习自我评价
2013/12/04 职场文书
上班上网检讨书
2014/01/29 职场文书
音乐教学案例
2014/01/30 职场文书
平安建设汇报材料
2014/12/29 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python
python的变量和简单数字类型详解
2021/09/15 Python