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.AutoComplete.js中文修正版(支持firefox)
Apr 09 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
Oct 15 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
BootStrap Validator使用注意事项(必看篇)
Sep 28 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
Dec 14 Javascript
JavaScript实现公历转农历功能示例
Feb 13 Javascript
详解如何优雅地在React项目中使用Redux
Dec 28 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
Oct 08 Javascript
小程序自定义单页面、全局导航栏的实现代码
Mar 15 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
Apr 09 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 foreach正序倒序输出示例代码
2014/07/01 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
Prototype使用指南之range.js
2007/01/10 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
Python Json序列化与反序列化的示例
2018/01/31 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)
2020/04/22 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
yolov5返回坐标的方法实例
2022/03/17 Python