|
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;
|
|