xml 封装与解析(javascript和C#中)


Posted in Javascript onJuly 26, 2009

1.xml的解析(javascript中):
具体代码如下,解析的结果root为Dom树。

if (window.ActiveXObject){ 
var doc=new ActiveXObject("Microsoft.XMLDOM"); 
doc.async="false"; 
doc.loadXML(strXml); 
}else{ 
var parser=new DOMParser(); 
var doc=parser.parseFromString(strXml,"text/xml"); 
} 
var root = doc.documentElement;

2.xml的封装(javascript中):
(该代码为将页面中table封装为一个xml)
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.loadXML("<Rows></Rows>"); 
var root = xmlDoc.documentElement; 
for(var index=0;index<this.table.rows.length;index++) 
{ 
var row = xmlDoc.createElement("Row"); 
for(var colIndex = 0;colIndex<this.table.rows[index].cells.length;colIndex++) 
{ 
var currentCell = this.table.rows[index].cells[colIndex]; 
var cell = xmlDoc.createElement("Cell"); 
cell.setAttribute("Name",this.table.columns[colIndex].id); 
cell.setAttribute("Value",currentCell.value); 
row.appendChild(cell); 
} 
root.appendChild(row); 
}

对于ajax实现前台xml到后台的传输可以参考jquery实现xml的前后台传输。
3.xml的封装:(C#)
具体方法如下,
XmlDocument doc = new XmlDocument(); 
doc.LoadXml("<Data></Data>"); 
XmlElement root = doc.DocumentElement; 
root.SetAttribute("Name", name);//此处name为该xml赋一个Name属性 
foreach (ListObject Object in ListResult)//其中listResult为一个由listObject对象组成的list表,其中object为listResult的一个元素,他是ListObject型的 
{ 
XmlElement item = doc.CreateElement("Item"); 
item.SetAttribute("Key", Object.key);//其中key,value分别为Object的属性元素 
item.SetAttribute("Value", Object.Value); 
root.AppendChild(item); 
}

最后生成的root即为xml.
4.xml的解析(c#)
XmlDocument doc = new XmlDocument(); 
try 
{ 
doc.Load(Request.InputStream);//此处加载request请求的xml流 
} 
catch (Exception e) 
{} 
XmlNodeList rowList; 
rowList = doc.DocumentElement.SelectNodes("Row"); 
List<ObjectVO> voList = new List<ObjectVO>(rowList.Count);//初始化一个List,改list中组成元素是ObjectVO对象 
foreach (XmlNode row in rowList) 
{ 
ObjectVO VO = new ObjectVO(); 
VO.VOElement1 = Convert.ToInt32((row.SelectSingleNode("Cell[@Name='VOElement1']") as XmlElement).GetAttribute("Value"));//vo中元素VOElement1为int型 
VO.VOElement2 = (row.SelectSingleNode("Cell[@Name='VOElement2']") as XmlElement).GetAttribute("Value").ToString();//或取xml中cell元素中name为VOElement2的value属性的值 
VO.VOElement3 = (row.SelectSingleNode("Cell[@Name='VOElement3']") as XmlElement).GetAttribute("Value").ToString(); 
voList.Add(VO); 
} 
return voList;
Javascript 相关文章推荐
javascript Base类 包含基本的方法
Jul 22 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 Javascript
js图片自动切换效果处理代码
May 07 Javascript
jquery中获得元素尺寸和坐标的方法整理
May 18 Javascript
JavaScript中的apply和call函数详解
Jul 20 Javascript
Javascript Memoizer浅析
Oct 16 Javascript
jQuery使用之设置元素样式用法实例
Jan 19 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
Javascript中作用域的详细介绍
Oct 06 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
基于es6三点运算符的使用方法(实例讲解)
Oct 12 Javascript
jQuery表单选择器用法详解
Aug 22 jQuery
JavaScript 捕获窗口关闭事件
Jul 26 #Javascript
jquery tools之tooltip
Jul 25 #Javascript
jquery tools之tabs 选项卡/页签
Jul 25 #Javascript
jquery JSON的解析方式
Jul 25 #Javascript
jqPlot Option配置对象详解
Jul 25 #Javascript
jqPlot jquery的页面图表绘制工具
Jul 25 #Javascript
IE DOM实现存在的部分问题及解决方法
Jul 25 #Javascript
You might like
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
php事务处理实例详解
2014/07/11 PHP
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
Python Pandas找到缺失值的位置方法
2018/04/12 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
创建索引时需要注意的事项
2013/05/13 面试题
实习医生自我评价
2013/09/22 职场文书
普通员工辞职信
2014/01/17 职场文书
二年级数学教学反思
2014/01/21 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
服务承诺书格式
2014/05/21 职场文书
不错的求职信范文
2014/07/20 职场文书
单位工作证明
2014/10/07 职场文书
发布会邀请函
2015/01/31 职场文书
迎新生晚会主持词
2015/06/30 职场文书
MySQL分区表实现按月份归类
2021/11/01 MySQL
Win11查看设备管理器
2022/04/19 数码科技