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 相关文章推荐
解决 FireFox 下[使用event很麻烦] 的问题.
Aug 22 Javascript
Javascript 强制类型转换函数
May 17 Javascript
javascript OFFICE控件测试代码
Dec 08 Javascript
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
基于jQuery实现仿淘宝套餐选择插件
Mar 04 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
Mar 26 Javascript
jquery实现九宫格大转盘抽奖
Nov 13 Javascript
Ztree新增角色和编辑角色回显问题的解决
Oct 25 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
微信小程序实现自定义底部导航
Nov 18 Javascript
JavaScript数组reduce()方法的语法与实例解析
Jul 07 Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 14 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
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
2014/10/15 PHP
THINKPHP支持YAML配置文件的设置方法
2015/03/17 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
python中从for循环延申到推导式的具体使用
2019/11/29 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
Vans荷兰官方网站:美国南加州的原创极限运动潮牌
2018/01/23 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
公司接待方案
2014/03/08 职场文书
写自荐信的注意事项
2014/03/09 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
工程材料采购方案
2014/05/18 职场文书
商务英语专业求职信
2014/06/26 职场文书
感谢信范文大全
2015/01/23 职场文书
python解析照片拍摄时间进行图片整理
2022/07/23 Python