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 相关文章推荐
为数据添加append,remove功能
Oct 03 Javascript
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
Jan 09 Javascript
jquery 子窗口操作父窗口的代码
Sep 21 Javascript
HTML DOM的nodeType值介绍
Mar 31 Javascript
JS在可编辑的div中的光标位置插入内容的方法
Nov 20 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
JavaScript:Date类型全面解析
May 19 Javascript
js事件驱动机制 浏览器兼容处理方法
Jul 23 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
vue.js简单配置axios的方法详解
Dec 13 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 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+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
jQuery 源码分析笔记
2011/05/25 PHP
PHP数据过滤的方法
2013/10/30 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
django中静态文件配置static的方法
2018/05/20 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python实现五子棋小程序
2019/06/18 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
python logging模块的使用
2020/09/07 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
中学门卫岗位职责
2013/12/26 职场文书
小学数学教学反思
2014/02/02 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
工程专业求职自荐书范文
2014/02/18 职场文书
养成教育主题班会
2015/08/13 职场文书
mysql函数全面总结
2021/11/11 MySQL