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;
xml 封装与解析(javascript和C#中)
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@