使用ASP訪問XML文件

發表于:2007-09-07來源:作者:點擊數: 標簽:
XML標準正在為越來越多的軟件廠商所接受,Microsoft作為力推XML的廠商之一,為XML的推廣做出了大量的貢獻。它的文檔對象模型(DOM)為XML的存取提供了很多方便使用的方法。 XML和 數據庫 有很多相似之處,它們都是結構化的存儲信息的途徑。數據庫用記錄和字段組
XML標準正在為越來越多的軟件廠商所接受,Microsoft作為力推XML的廠商之一,為XML的推廣做出了大量的貢獻。它的文檔對象模型(DOM)為XML的存取提供了很多方便使用的方法。

XML和數據庫有很多相似之處,它們都是結構化的存儲信息的途徑。數據庫用記錄和字段組成的表格存儲信息,這樣就允許方便地訪問和搜索。XML文件也可以按照類似的結構化方式來存儲信息。而XML作為一個統一的標準,不會像數據庫系統那樣因為數據庫的不同而造成數據傳遞的困難。XML可以從一種數據庫中取出數據,并將數據上傳到完全不同的數據庫中,例如可以將數據從服務器A上的Oracle數據庫傳送給服務器B的SQL數據庫。本文討論如何使用動態服務頁面(Active Server Pages, ASP)將XML文件中的數據寫入數據庫。

本文的實例在Windows 2000、SQL Server 7.0、IE5.0平臺上測試通過。

數據說明

本例使用的數據庫ST中的students表結構為:

字段名 字段類型 字段寬度

Name Char 10

Birthday Datetime 8

Score Int 4

XML文件students.xml如下:



Tom

1976-2-15

92



alice

1978-4-18

99



技術說明

使用ASP訪問XML文件有兩種方式:

● 作為文本流的簡單結構文件;

● 作為XML DOM對象。

本文使用的是第二種方式,DOM中常用的方法和屬性有:

1. CreateObject()方法與load()方法

為給出的文件創建DOM,首先要使用CreateObject()方法創建DOM的實例。下面是如何使用ASP在服務器上創建DOM的例子:

set oXMLDOM=server.CreateObject (“Microsoft.XMLDOM”)

XML DOM被創建后,它必須裝入一個XML文件。例如:

oXMLDOM.load(“d:\students.xml”)

創建了DOM對象并載入了XML文件后,就可以使用DOM的方法和屬性來訪問文件了。

2. getElementsByTagName()方法

Document對象的getElementsByTagName方法可以取得所有具有所傳參數指定的名字的后續元素的列表,它返回一個NodeList對象。

例如: set recordlist=oXMLDOM.getElements-

ByTagName(“student”)

3. item()方法

nodeList對象的item()方法將一個索引作為參數,返回這個索引位置上的節點。如果這個索引超出了范圍,那么就返回空值。注意:計數器總是從零開始。

4.Length屬性

nodeList對象的Length屬性返回一個無符號的長整數,為NodeList中節點的個數。

5.Childnodes屬性

Childnodes是node對象的一個屬性,它返回這個節點的所有子節點的NodeList。

例如: recordlist.item(i).childnodes.item(j)

.text指的是第i+1個student的第j+1個子節點的值(因為計數器總是從零開始)。假設i=1,j=0,則recordlist.item(i).childnodes.item(j).text的值為“alice”,即為第2個student的第1個子節點(name)的值。

程序說明

下面的程序訪問XML文件students.xml,并將其數據寫入數據庫ST的students表中。為了使程序盡量簡潔,假設空表students已存在于數據庫ST中。程序的實現步驟如下:

1.連接數據庫ST,打開表students,創建Recordset對象

Set conn=server.CreateObject(“ADODB

.connection”)

conn.Open “dsn=st;uid=sa;pwd=;database=st”

Set myrecord=server.createobject(“ADODB

.Recordset”)

myrecord.open “students”,conn,1,3

2. 創建DOM的實例oXMLDOM

set oXMLDOM=server.CreateObject (“Microsoft.XMLDOM”)

3. 載入XML文件students.xml

oXMLDOM.load(“d:\students.xml”)

4. 使用DOM的getElementsByTagName()方法創建所有student元素的節點清單

set recordlist=oXMLDOM.getElementsByTag-

Name(“student”)

5.使用一個雙重循環將XML文件中的數據讀出,寫入數據庫表中

’用外循環遍歷各student

for i=0 to recordlist.length-1

’用內循環取得每個student的各節點的值,存入數組sp

for j=0 to recordlist.item(i).childnodes

.length-1

sp(j)= recordlist.item(i).childnodes

.item(j).text

next

’在表students中增加一條記錄,并將數組sp的值寫入各字段(注意數據類型的轉變)

myrecord.AddNew

myrecord(“name”).value=sp(1)

myrecord(“birthday”).value=cdate(sp(3))

myrecord(“score”).value=cint(sp(4))

myrecord.Update

next

6.關閉所創建的實例與對象

set oxmldom=nothing

set recordlist=nothing

myrecord.Close

Set myrecord=nothing

小 結

通過本文,我們可以看到XML和數據庫具有很緊密的聯系,ASP在連接XML和數據庫之間起到重要的作用,可以使用XML作為不同數據存儲之間的中介,也可以使用XML本身作為一種數據存儲方式。


XML標準正在為越來越多的軟件廠商所接受,Microsoft作為力推XML的廠商之一,為XML的推廣做出了大量的貢獻。它的文檔對象模型(DOM)為XML的存取提供了很多方便使用的方法。
XML和數據庫有很多相似之處,它們都是結構化的存儲信息的途徑。數據庫用記錄和字段組成的表格存儲信息,這樣就允許方便地訪問和搜索。XML文件也可以按照類似的結構化方式來存儲信息。而XML作為一個統一的標準,不會像數據庫系統那樣因為數據庫的不同而造成數據傳遞的困難。XML可以從一種數據庫中取出數據,并將數據上傳到完全不同的數據庫中,例如可以將數據從服務器A上的Oracle數據庫傳送給服務器B的SQL數據庫。本文討論如何使用動態服務頁面(Active Server Pages, ASP)將XML文件中的數據寫入數據庫。

本文的實例在Windows 2000、SQL Server 7.0、IE5.0平臺上測試通過。

數據說明

本例使用的數據庫ST中的students表結構為:

字段名 字段類型 字段寬度

Name Char 10

Birthday Datetime 8

Score Int 4

XML文件students.xml如下:



Tom

1976-2-15

92



alice

1978-4-18

99



技術說明

使用ASP訪問XML文件有兩種方式:

● 作為文本流的簡單結構文件;

● 作為XML DOM對象。

本文使用的是第二種方式,DOM中常用的方法和屬性有:

1. CreateObject()方法與load()方法

為給出的文件創建DOM,首先要使用CreateObject()方法創建DOM的實例。下面是如何使用ASP在服務器上創建DOM的例子:

set oXMLDOM=server.CreateObject (“Microsoft.XMLDOM”)

XML DOM被創建后,它必須裝入一個XML文件。例如:

oXMLDOM.load(“d:\students.xml”)

創建了DOM對象并載入了XML文件后,就可以使用DOM的方法和屬性來訪問文件了。

2. getElementsByTagName()方法

Document對象的getElementsByTagName方法可以取得所有具有所傳參數指定的名字的后續元素的列表,它返回一個NodeList對象。

例如: set recordlist=oXMLDOM.getElements-

ByTagName(“student”)

3. item()方法

nodeList對象的item()方法將一個索引作為參數,返回這個索引位置上的節點。如果這個索引超出了范圍,那么就返回空值。注意:計數器總是從零開始。

4.Length屬性

nodeList對象的Length屬性返回一個無符號的長整數,為NodeList中節點的個數。

5.Childnodes屬性

Childnodes是node對象的一個屬性,它返回這個節點的所有子節點的NodeList。

例如: recordlist.item(i).childnodes.item(j)

.text指的是第i+1個student的第j+1個子節點的值(因為計數器總是從零開始)。假設i=1,j=0,則recordlist.item(i).childnodes.item(j).text的值為“alice”,即為第2個student的第1個子節點(name)的值。

程序說明

下面的程序訪問XML文件students.xml,并將其數據寫入數據庫ST的students表中。為了使程序盡量簡潔,假設空表students已存在于數據庫ST中。程序的實現步驟如下:

1.連接數據庫ST,打開表students,創建Recordset對象

Set conn=server.CreateObject(“ADODB

.connection”)

conn.Open “dsn=st;uid=sa;pwd=;database=st”

Set myrecord=server.createobject(“ADODB

.Recordset”)

myrecord.open “students”,conn,1,3

2. 創建DOM的實例oXMLDOM

set oXMLDOM=server.CreateObject (“Microsoft.XMLDOM”)

3. 載入XML文件students.xml

oXMLDOM.load(“d:\students.xml”)

4. 使用DOM的getElementsByTagName()方法創建所有student元素的節點清單

set recordlist=oXMLDOM.getElementsByTag-

Name(“student”)

5.使用一個雙重循環將XML文件中的數據讀出,寫入數據庫表中

’用外循環遍歷各student

for i=0 to recordlist.length-1

’用內循環取得每個student的各節點的值,存入數組sp

for j=0 to recordlist.item(i).childnodes

.length-1

sp(j)= recordlist.item(i).childnodes

.item(j).text

next

’在表students中增加一條記錄,并將數組sp的值寫入各字段(注意數據類型的轉變)

myrecord.AddNew

myrecord(“name”).value=sp(1)

myrecord(“birthday”).value=cdate(sp(3))

myrecord(“score”).value=cint(sp(4))

myrecord.Update

next

6.關閉所創建的實例與對象

set oxmldom=nothing

set recordlist=nothing

myrecord.Close

Set myrecord=nothing

小 結

通過本文,我們可以看到XML和數據庫具有很緊密的聯系,ASP在連接XML和數據庫之間起到重要的作用,可以使用XML作為不同數據存儲之間的中介,也可以使用XML本身作為一種數據存儲方式。



原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97