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 相关文章推荐
js 通用javascript函数库整理
Aug 14 Javascript
没有document.getElementByName方法
Aug 19 Javascript
最好用的省市二级联动 原生js实现你值得拥有
Sep 22 Javascript
JQuery中$(document)是什么意思有什么作用
Jul 21 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
Sep 15 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
JS实现json对象数组按对象属性排序操作示例
May 18 Javascript
优雅的elementUI table单元格可编辑实现方法详解
Dec 23 Javascript
vue组件化中slot的基本使用方法
May 01 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
Aug 20 Javascript
package.json配置文件构成详解
Aug 27 Javascript
关于layui flow loading占位图的实现方法
Sep 21 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
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP无限分类(树形类)的深入分析
2013/06/02 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
js获取form的方法
2015/05/06 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
vue之数据交互实例代码
2017/06/20 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
python中的闭包用法实例详解
2015/05/05 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
selenium+python自动化测试之多窗口切换
2019/01/23 Python
python里运用私有属性和方法总结
2019/07/08 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
职工趣味运动会方案
2014/02/10 职场文书
同志主要表现材料
2014/08/21 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
让文件路径提取变得更简单的Python Path库
2021/05/27 Python
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL