xml 封裝與解析(javascript和C#中)
更新時(shí)間:2009年07月26日 09:55:56 作者:
xml 封裝與解析 javascript和C#中的分別實(shí)現(xiàn)代碼。
1.xml的解析(javascript中):
具體代碼如下,解析的結(jié)果root為Dom樹(shù)。
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中):
(該代碼為將頁(yè)面中table封裝為一個(gè)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);
}
對(duì)于ajax實(shí)現(xiàn)前臺(tái)xml到后臺(tái)的傳輸可以參考jquery實(shí)現(xiàn)xml的前后臺(tái)傳輸。
3.xml的封裝:(C#)
具體方法如下,
XmlDocument doc = new XmlDocument();
doc.LoadXml("<Data></Data>");
XmlElement root = doc.DocumentElement;
root.SetAttribute("Name", name);//此處name為該xml賦一個(gè)Name屬性
foreach (ListObject Object in ListResult)//其中l(wèi)istResult為一個(gè)由listObject對(duì)象組成的list表,其中object為listResult的一個(gè)元素,他是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請(qǐng)求的xml流
}
catch (Exception e)
{}
XmlNodeList rowList;
rowList = doc.DocumentElement.SelectNodes("Row");
List<ObjectVO> voList = new List<ObjectVO>(rowList.Count);//初始化一個(gè)List,改list中組成元素是ObjectVO對(duì)象
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;
具體代碼如下,解析的結(jié)果root為Dom樹(shù)。
復(fù)制代碼 代碼如下:
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中):
(該代碼為將頁(yè)面中table封裝為一個(gè)xml)
復(fù)制代碼 代碼如下:
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);
}
對(duì)于ajax實(shí)現(xiàn)前臺(tái)xml到后臺(tái)的傳輸可以參考jquery實(shí)現(xiàn)xml的前后臺(tái)傳輸。
3.xml的封裝:(C#)
具體方法如下,
復(fù)制代碼 代碼如下:
XmlDocument doc = new XmlDocument();
doc.LoadXml("<Data></Data>");
XmlElement root = doc.DocumentElement;
root.SetAttribute("Name", name);//此處name為該xml賦一個(gè)Name屬性
foreach (ListObject Object in ListResult)//其中l(wèi)istResult為一個(gè)由listObject對(duì)象組成的list表,其中object為listResult的一個(gè)元素,他是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#)
復(fù)制代碼 代碼如下:
XmlDocument doc = new XmlDocument();
try
{
doc.Load(Request.InputStream);//此處加載request請(qǐng)求的xml流
}
catch (Exception e)
{}
XmlNodeList rowList;
rowList = doc.DocumentElement.SelectNodes("Row");
List<ObjectVO> voList = new List<ObjectVO>(rowList.Count);//初始化一個(gè)List,改list中組成元素是ObjectVO對(duì)象
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;
您可能感興趣的文章:
- JS解析XML的實(shí)現(xiàn)代碼
- JS解析XML文件和XML字符串詳解
- JS實(shí)現(xiàn)兼容各瀏覽器解析XML文檔數(shù)據(jù)的方法
- JS解析XML實(shí)例分析
- js使用遞歸解析xml
- javascript解析xml實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)的方法
- JS操作XML實(shí)例總結(jié)(加載與解析XML文件、字符串)
- jQuery解析XML與傳統(tǒng)JavaScript方法的差別實(shí)例分析
- jQuery解析XML文件同時(shí)動(dòng)態(tài)增加js文件的方法
- 原生javascript實(shí)現(xiàn)解析XML文檔與字符串
- JS實(shí)現(xiàn)的跨瀏覽器解析XML文件實(shí)例
相關(guān)文章
JavaScript中小數(shù)點(diǎn)精度丟失的原因以及解決方法
計(jì)算機(jī)再大的內(nèi)存它也存不下,所以不能存儲(chǔ)一個(gè)相對(duì)于數(shù)學(xué)來(lái)說(shuō)的值,只能存儲(chǔ)一個(gè)近似值,所以當(dāng)計(jì)算機(jī)存儲(chǔ)后再取出來(lái)用時(shí)就會(huì)出現(xiàn)精度問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于JavaScript中小數(shù)點(diǎn)精度丟失的原因以及解決方法,需要的朋友可以參考下2023-10-10基于BootStrap與jQuery.validate實(shí)現(xiàn)表單提交校驗(yàn)功能
學(xué)習(xí)前臺(tái)后臺(tái)最開(kāi)始接觸的業(yè)務(wù)都是用戶(hù)注冊(cè)和登錄,下面通過(guò)本文給大家介紹BootStrap與jQuery.validate實(shí)現(xiàn)表單提交校驗(yàn)功能,感興趣的朋友一起學(xué)習(xí)吧2016-12-12JavaScript Event學(xué)習(xí)第四章 傳統(tǒng)的事件注冊(cè)模型
在這一章我會(huì)講解給元素注冊(cè)事件的最好的一種辦法,那就是:確保一個(gè)特定的事件在特定的HTML元素上發(fā)生并且能運(yùn)行特定的腳本。2010-02-02使用JavaScript實(shí)現(xiàn)點(diǎn)擊循環(huán)切換圖片效果
本文通過(guò)實(shí)例代碼給大家介紹了通過(guò)js實(shí)現(xiàn)點(diǎn)擊循環(huán)切換圖片效果,需要的朋友參考下2017-09-09js實(shí)現(xiàn)非常簡(jiǎn)單的焦點(diǎn)圖切換特效實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)非常簡(jiǎn)單的焦點(diǎn)圖切換特效,是一個(gè)非常簡(jiǎn)單的js焦點(diǎn)圖切換效果,涉及javascript操作鼠標(biāo)事件與圖片的相關(guān)技巧,需要的朋友可以參考下2015-05-05