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 相关文章推荐
定义select的边框颜色
Apr 28 Javascript
UserData用法总结 lanyu出品
Jul 01 Javascript
jQuery基本选择器选择元素使用介绍
Apr 18 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
js常用系统函数用法实例分析
Jan 12 Javascript
JQuery显示隐藏DIV的方法及代码实例
Apr 16 Javascript
JavaScript脚本库编写的方法
Dec 09 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
Nov 17 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 Javascript
微信小程序商品详情页底部弹出框
Nov 22 Javascript
使用Ajax实现无刷新上传文件
Apr 12 Javascript
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
SONY ICF-F10中波修复记
2021/03/02 无线电
PHP 的几个配置文件函数
2006/12/21 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
提高网站信任度的技巧
2008/10/17 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
JavaScript入门基础
2015/08/12 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
sqlalchemy对象转dict的示例
2014/04/22 Python
跟老齐学Python之集合的关系
2014/09/24 Python
Django 导出 Excel 代码的实例详解
2017/08/11 Python
Python线程同步的实现代码
2018/10/03 Python
django foreignkey(外键)的实现
2019/07/29 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
乌克兰珠宝大卖场:Zlato.ua
2020/09/27 全球购物
门卫岗位职责
2013/11/15 职场文书
Promise静态四兄弟实现示例详解
2022/07/07 Javascript