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代码
Nov 08 Javascript
jQuery - css() 方法示例详解
Jan 16 Javascript
Javascript连接多个数组不用concat来解决
Mar 24 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
Apr 30 Javascript
Javascript正则控制文本框只能输入整数或浮点数
Sep 02 Javascript
node.js中的fs.utimesSync方法使用说明
Dec 15 Javascript
javascript实现获取字符串hash值
May 10 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
Aug 21 Javascript
javascript RegExp 使用说明
May 21 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
Jan 16 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
JavaScript装饰者模式原理与用法实例详解
Mar 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去除重复字的实现代码
2011/09/16 PHP
php操作redis缓存方法分享
2015/06/03 PHP
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
jquery的attr方法禁用表单元素禁用输入内容
2014/06/23 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
python使用tornado实现登录和登出
2018/07/28 Python
numpy.where() 用法详解
2019/05/27 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
Python数学形态学实例分析
2019/09/06 Python
python实现串口通信的示例代码
2020/02/10 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
python 模拟登录B站的示例代码
2020/12/15 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
银行求职推荐信范文
2013/11/30 职场文书
中文专业毕业生自荐书范文
2014/01/04 职场文书
校园餐饮创业计划书
2014/01/10 职场文书
高中生的自我评价
2014/03/04 职场文书
投资协议书范本
2014/04/21 职场文书
初三学习计划书范文
2014/04/30 职场文书
义和团口号
2014/06/17 职场文书
拾金不昧感谢信
2015/01/21 职场文书
学生退学证明
2015/06/23 职场文书
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android