2010年11月15日

XmlDocument讀取出XML的每層標籤名稱

以下將示範如何用XmlDocument尋訪節點,將資料讀出來:

有一個XML檔,名稱是"person.xml",內容為:
---------------------------------------------

<基本資料>
<學生>
<學號 學校="南台科大">9096036
<姓名>蔡文龍
<電話>04-32345671
<信箱>lung67@giga.net.tw
<價格>
<單位>台幣
<數值>300


<學生>
<學號 學校="台南科大">9096001
<姓名>許百宏
<電話>04-12345671
<信箱>em@ms37.hient.net
<價格>
<單位>美元
<數值>400



---------------------------------------------
想設計一個程式,可以自己判斷裡面有幾層標籤,
並把每一層的標籤存在不同的變數裡,希望的結果如下

矩陣[第1層]:基本資料
矩陣[第2層]:學生
矩陣[第3層]:學號、姓名、電話、信箱、價格
矩陣[第4層]:單位、數值

程式如下:
Dim objXmlDocument As New XmlDocument
objXmlDocument.Load(Server.MapPath("person.xml"))

Dim NodeSave01(10) As String '此矩陣用來存特定層級的所有節點名稱
Dim NodeCount01 As Integer = 0 '存目前在第幾層的位置:本範例有四層:基本資料(第一層)__學生(第二層)__學號(第三層)__單位(第四層)
Dim NodeCount02 As Integer = 0 '存特定層級的節點數目:本範例的第一層(1個節點)__第二層(2個節點)__第三層(5個節點)__第四層(2個節點)
Dim Nodestr01 As String = ""

NodeSave01(0) = objXmlDocument.DocumentElement.Name '將根節點名稱存進第一層矩陣
If objXmlDocument.DocumentElement.HasChildNodes Then '看是否有第二層節點
  NodeCount01 += 1 '將層級指向第二層
  NodeSave01(NodeCount01) = objXmlDocument.DocumentElement.ChildNodes   '將第二層的所有節點名稱存入到矩陣[第2層],但是*****「沒辦法存」******
End If

Response.Write(NodeSave01(0)) '印出第一層的標籤名稱
Response.Write(NodeSave01(1)) '印出第二層的標籤名稱

沒有留言:

張貼留言