源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-10-05 09:07 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:xml 封装与解析(javascript和C#中)
[b]1.xml的解析(javascript中):[/b] 具体代码如下,解析的结果root为Dom树。
[u]复制代码[/u] 代码如下:
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;
[b]2.xml的封装(javascript中): [/b](该代码为将页面中table封装为一个xml)
[u]复制代码[/u] 代码如下:
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的前后台传输。 [b]3.xml的封装:(C#)[/b] 具体方法如下,
[u]复制代码[/u] 代码如下:
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. [b]4.xml的解析(c#)[/b]
[u]复制代码[/u] 代码如下:
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;
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部