明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP.NET中根據(jù)XML動態(tài)創(chuàng)建并使用WEB組件(一)

[摘要]ASP.NET中根據(jù)XML動態(tài)創(chuàng)建使用WEB組件(一)作者:厲鐵帥前段時間筆者在開發(fā)中需要動態(tài)創(chuàng)建WEB組件,本以為是小事一樁,誰知看時容易做時難。里面還真有些小問題。下面筆者就結合自己的程序來介紹...
ASP.NET中根據(jù)XML動態(tài)創(chuàng)建使用WEB組件

(一)

作者:厲鐵帥

前段時間筆者在開發(fā)中需要動態(tài)創(chuàng)建WEB組件,本以為是小事一樁,誰知看時容易做時難。里面還真有些小問題。下面筆者就結合自己的程序來介紹一下如何動態(tài)創(chuàng)建并使用WEB組件,希望能給做類似工作的朋友提供一點幫助。

一、程序思路

程序主要分三部分:

1、程序要根據(jù)XML中的數(shù)據(jù)信息確定需要創(chuàng)建的WEB組件的個數(shù)。

2、動態(tài)創(chuàng)建WEB組件。

3、使用動態(tài)創(chuàng)建的WEB組件。

其中2和3是筆者要重點介紹的部分。

下面筆者就按照這三部分結合程序實例(以c#為例)來一一介紹。



二、讀取XML文件

讀取XML文件在很多的資料中都有詳細的說明,而且相信很多朋友都已經(jīng)很好的掌握了其技術。但為了保證文章的完整性,筆者在這里還是要贅述幾句。深諧其味的朋友可以略過此段不看。

筆者程序中要讀取的XML文件形如下列:

config.xml

<?xml version="1.0"?>

<Root>

<Nettype>net</Nettype>

<Totalnum>6</Totalnum>

<Cells>2</Cells>

<IPlink>

<Name>站點1</Name>

<IP>192.8.198.1</IP>

<Sequence>1</Sequence>

</IPlink>

<IPlink>

<Name>站點2</Name>

<IP>192.8.198.2</IP>

<Sequence>2</Sequence>

</IPlink>

… …

</Root>










































讀取XML文件的程序如下:

protected void readconfig()

{

try

{

System.Xml.XmlDocument mXmlDoc=new System.Xml.XmlDocument();

mXmlDoc.Load(Server.MapPath(configfilepath));

nettype=mXmlDoc.SelectNodes("//Root/Nettype")[0].InnerText; totalnum=int.Parse(mXmlDoc.SelectNodes("//Root/Totalnum")[0].InnerText);

//讀出列數(shù)

cells=int.Parse(mXmlDoc.SelectNodes("//Root/Cells")[0].InnerText);

XmlNodeList mXmlNodes=mXmlDoc.SelectNodes("//Root/IPlink");

foreach(XmlNode IPlinkchildlNode in mXmlNodes)

{

//得到序列號

int icount=int.Parse(IPlinkchildlNode.ChildNodes[2].InnerText);

//根據(jù)序列號,將測量點的名稱放入名稱數(shù)組相應的位置上

namestr[icount]=IPlinkchildlNode.ChildNodes[0].InnerText;

//根據(jù)序列號,將測量點的IP放入IP數(shù)組相應的位置上

ipstr[icount]=IPlinkchildlNode.ChildNodes[1].InnerText;

}

}

catch

{

errmessage.InnerHtml="<table align=center><tr>

<td align=left><font color=red>不能讀取配置文件,可能的錯誤是<br>"+"1、配置文件不存在<br>"+

"2、配置文件內容被損壞"+

"</font></td></tr>";

}

}


































































程序中對XML中無子節(jié)點的元素如:

<Nettype>net</Nettype>










直接使用如下語句讀取。

mXmlDoc.SelectNodes("//Root/Nettype")[0].InnerText;










對于有子節(jié)點的元素如:

<IPlink>

<Name>站點1</Name>

<IP>192.8.198.1</IP>

<Sequence>1</Sequence>

</IPlink>
















要使用語句如下來讀取。

IPlinkchildlNode.ChildNodes[N].InnerText










其中 ChildNodes[N] 中的[N]為子節(jié)點的序號,子節(jié)點

<Name>站點1</Name>










的序號應該為[0]。