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 firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
Javascript学习笔记一 之 数据类型
Dec 15 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
E3 tree 1.6在Firefox下显示问题的修复方法
Jan 30 Javascript
js实现局部页面打印预览原理及示例代码
Jul 03 Javascript
jQuery实现页面点击后退弹出提示框的方法
Aug 24 Javascript
原生js实现验证码功能
Mar 16 Javascript
微信小程序中的onLoad详解及简单实例
Apr 05 Javascript
在vue中使用vue-echarts-v3的实例代码
Sep 13 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
Sep 06 Javascript
基于vue-cli3和element实现登陆页面
Nov 13 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
php巧获服务器端信息
2006/12/06 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
jQuery对象和DOM对象相互转化
2009/04/24 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
jQuery getJSON()+.ashx 实现分页(改进版)
2013/03/28 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
javascript事件冒泡实例分析
2015/05/13 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
Python如何实现FTP功能
2020/05/28 Python
基于PyTorch中view的用法说明
2021/03/03 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
瑞典度假品牌:OAS
2019/05/28 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
风险评估实施方案
2014/03/09 职场文书
创意婚礼策划方案
2014/05/18 职场文书
培训研修方案
2014/06/06 职场文书
实验室标语
2014/06/21 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
银行培训心得体会范文
2016/01/09 职场文书