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获取多个tagname的节点数组
Sep 22 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
一个不错的仿携程自定义数据下拉选择select
Sep 01 Javascript
jquery实现隐藏在左侧的弹性弹出菜单效果
Sep 18 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
Oct 08 Javascript
js操作DOM--添加、删除节点的简单实例
Jul 08 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
Nov 22 Javascript
微信小程序实现折叠面板
Jan 31 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
Sep 28 Javascript
ant-design-vue 快速避坑指南(推荐)
Jan 21 Javascript
jQuery实现雪花飘落效果
Aug 02 jQuery
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常用代码
2006/11/23 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
2014/08/18 PHP
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
一个JQuery操作Table的代码分享
2012/03/30 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
jQuery属性选择器用法实例分析
2019/06/28 jQuery
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python 自动批量打开网页的示例
2019/02/21 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
python实现贪吃蛇双人大战
2020/04/18 Python
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
美国在线购物频道:Shop LC
2019/04/21 全球购物
老公给老婆的道歉信
2014/01/10 职场文书
《白鹅》教学反思
2014/04/13 职场文书
运动会横幅标语
2014/06/17 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js