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 相关文章推荐
jQuery 方法大全方便学习参考
Feb 25 Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
Dec 05 Javascript
JS限制条件补全问题实例分析
Dec 16 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
javascript 封装Date日期类实例详解
May 28 Javascript
JavaScript解析任意形式的json树型结构展示
Jul 23 Javascript
vux uploader 图片上传组件的安装使用方法
May 15 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
Element InputNumber 计数器的实现示例
Aug 03 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
Nov 06 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
php模板中出现空行解决方法
2011/03/08 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
jquery动画1.加载指示器
2012/08/24 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
jQuery修改class属性和CSS样式整理
2015/01/30 Javascript
Node.js事件驱动
2015/06/18 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
js实现右键菜单功能
2016/11/28 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
React组件生命周期详解
2017/07/03 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
python使用opencv读取图片的实例
2017/08/17 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
WxPython建立批量录入框窗口
2019/02/27 Python
python读取大文件越来越慢的原因与解决
2019/08/08 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
解决python 找不到module的问题
2020/02/12 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
骨干教师培训感言
2014/01/16 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
付款证明格式范文
2015/06/19 职场文书