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 相关文章推荐
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
七个不允许错过的jQuery小技巧
Dec 21 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
Bootstrap页面标题Page Header的实现方法
Mar 22 Javascript
addEventListener()与removeEventListener()解析
Apr 20 Javascript
vue注册组件的几种方式总结
Mar 08 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
Jan 21 Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 Javascript
使用vuex存储用户信息到localStorage的实例
Nov 11 Javascript
js实现图片粘贴到网页
Dec 06 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
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使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
JQuery小知识
2010/10/15 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
全面解析Bootstrap布局组件应用
2016/02/22 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
jquery对Json的各种遍历方法总结(必看篇)
2016/09/29 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
python多线程操作实例
2014/11/21 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
Python Matplotlib 基于networkx画关系网络图
2019/07/10 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
毕业生动漫设计求职信
2013/10/11 职场文书
学校办公室主任职责
2013/12/27 职场文书
报纸媒体创意广告词
2014/03/17 职场文书
学校与家长安全责任书
2014/07/23 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
Python实现生成bmp图像的方法
2021/06/13 Python
简单介绍Python的第三方库yaml
2021/06/18 Python