xml 封装与解析(javascript和C#中)

 更新时间:2009年07月26日 09:55:56   作者:  
xml 封装与解析 javascript和C#中的分别实现代码。
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;

相关文章

  • 解决bootstrap-select 动态加载数据不显示的问题

    解决bootstrap-select 动态加载数据不显示的问题

    今天小编就为大家分享一篇解决bootstrap-select 动态加载数据不显示的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • js检测离开或刷新页面时表单数据是否更改的方法

    js检测离开或刷新页面时表单数据是否更改的方法

    这篇文章主要介绍了js检测离开或刷新页面时表单数据是否更改的方法,涉及javascript表单操作及事件响应的相关技巧,需要的朋友可以参考下
    2016-08-08
  • 关于layui的动态图标不显示的解决方法

    关于layui的动态图标不显示的解决方法

    今天小编就为大家分享一篇关于layui的动态图标不显示的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • javascript 四十条常用技巧大全

    javascript 四十条常用技巧大全

    本文给大家整理了有关js四十条常用技巧,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • 容易被忽略的JS脚本特性

    容易被忽略的JS脚本特性

    容易被忽略的JS脚本特性,学习js的朋友可以参考下。
    2011-09-09
  • Js为表单动态添加节点内容的方法

    Js为表单动态添加节点内容的方法

    这篇文章主要介绍了Js为表单动态添加节点内容的方法,实例分析了js针对表单节点进行添加操作的常用技巧,需要的朋友可以参考下
    2015-02-02
  • JavaScript实现列出数组中最长的连续数

    JavaScript实现列出数组中最长的连续数

    这篇文章主要介绍了JavaScript实现列出数组中最长的连续数的方法及使用,需要的朋友可以参考下
    2014-12-12
  • 详解javascript实现自定义事件

    详解javascript实现自定义事件

    这篇文章主要为大家介绍了javascript实现自定义事件的方法,自定义事件,顾名思义,就是自己定义事件类型,自己定义事件处理函数,javascript如何实现自定义事件,需要了解的朋友可以参考下
    2016-01-01
  • jsTree使用记录实例

    jsTree使用记录实例

    本文通过实例给大家详细介绍了jstree的使用技巧,需要的朋友可以参考下本文
    2016-12-12
  • JS中完美兼容各大浏览器的scrolltop方法

    JS中完美兼容各大浏览器的scrolltop方法

    最近用到scrolloTop()想去获取滚动条距离顶部的距离,结果只有chrome下面可以正常的获取scrollTop,ff和ie下这个值都等于0,使得许多效果比如屏幕滚动等等均无法正常实现。究其原因是scrollTop()在各个浏览器中的兼容性问题,今天我们就来详细探讨下。
    2015-04-04

最新评论