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 相关文章推荐
静态的动态续篇之来点XML
Dec 23 Javascript
js判断url是否有效的两种方法
Mar 04 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
Sep 01 Javascript
跟我学习javascript的this关键字
May 28 Javascript
js表单登陆验证示例
Oct 19 Javascript
原生JS实现N级菜单的代码
May 21 Javascript
微信小程序request请求后台接口php的实例详解
Sep 20 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 Javascript
手挽手带你学React之React-router4.x的使用
Feb 14 Javascript
JavaScript将数组转换为链表的方法
Feb 16 Javascript
JS forEach跳出循环2种实现方法
Jun 24 Javascript
vue打开其他项目页面并传入数据详解
Nov 25 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生成文件
2007/01/15 PHP
phpcms模块开发之swfupload的使用介绍
2013/04/28 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
2014/06/26 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
php类的定义与继承用法实例
2015/07/07 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
Python 含参构造函数实例详解
2017/05/25 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
解决Django加载静态资源失败的问题
2019/07/28 Python
Python Collatz序列实现过程解析
2019/10/12 Python
python 异步async库的使用说明
2020/05/04 Python
python集合的新增元素方法整理
2020/12/07 Python
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
室内设计专业毕业生求职信
2014/05/02 职场文书
大学生创业事迹材料
2014/12/30 职场文书
课外活动总结
2015/02/04 职场文书
学校食堂管理制度
2015/08/04 职场文书
二年级作文之动物作文
2019/11/13 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server