总的来说还得使用到Microsoft的ActiveX
创建XML对象:createObject("Microsoft.XMLDOM")
读取节点:selectSingleNode("nodename") //nodename为节点名。
读取属性:attributes.getNamedItem("attribute") //attribute为节点中所具有的属性名。
加载Xml文档:Load(Server.MapPath("XMLPath.xml"))
我写成了一个类,代码如下:
1
'■■■■■■■■■■■■■■■■■■■■■■■■
2
' ■
3
' 读取XML数据岛 ■
4
' ■
5
'■■■■■■■■■■■■■■■ By Maple ■■■
6
Class XMLReader
7
Private xmlDoc
8
9
'类初始化,创建XMLDOM对象,构造函数
10
private Sub Class_initialize()
11
'创建XMLDOM对象
12
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
13
'设置是否可以异步读取
14
xmlDoc.async = False
15
End Sub
16
17
'设置XML物理路径
18
Public Sub LoadXML(ByVal XPath)
19
xmlDoc.Load(Server.MapPath(XPath))
20
End Sub
21
22
'在类终止时候释放XMLDOM对象
23
Public Sub Class_Terminate()
24
Set xmlDoc = Nothing
25
End Sub
26
27
'选择单个节点
28
Public Function SelectSingleNode(ByVal NodeName)
29
Set SelectSingleNode = Doc.SelectSingleNode(NodeName)
30
End Function
31
32
'取得节点下子节点的总数
33
Public Function getNodeCount(Node)
34
getNodeCount = Node.Length
35
End Function
36
37
38
'〓〓〓〓〓〓〓〓〓〓 过程作用解释 〓〓〓〓〓〓〓〓〓〓
39
'〓 〓
40
'〓 读取网页菜单列表 〓
41
'〓 〓
42
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 By Maple 〓〓〓
43
Public Sub getWebMenu(xPath)
44
'调用Load传入XML物理路径
45
LoadXML(xPath)
46
set root = xmlDoc.documentElement
47
set nodeList = root.childNodes.item(0).childNodes
48
NodeCount = getNodeCount(nodeList)
49
50
For i = 1 to nodeCount
51
'取得下一个节点的值
52
set node = nodeList.nextNode()
53
' set cost = node.attributes.getNamedItem("cost")
54
Response.Write("<a href=""")
55
Response.Write(Node.SelectSingleNode("URL").Text)
56
Response.Write(""">")
57
'取得单独的一个节点(Name)的文本
58
Response.Write(node.SelectSingleNode("Name").Text)
59
60
'判断是否为最后一条记录,设置界面所用
61
If nodeCount - i <> 0 Then
62
Response.Write("</a> |") & vbcrlf
63
Else
64
Response.Write("</a>") & vbcrlf
65
End If
66
67
Next
68
End Sub
69
70
Public Function SelectNodes(ByVal XPath)
71
Set SelectNodes = Xml.SelectNodes(XPath)
72
End Function
73
End Class

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

XML文件:
1
<?xml version="1.0" encoding="UTF-8"?>
2
<Bluesky>
3
4
<MentList>
5
<Link ID="1">
6
<Name>首页</Name>
7
<URL>/</URL>
8
</Link>
9
<Link ID="2">
10
<Name>信息查询</Name>
11
<URL>?Class=Service</URL>
12
</Link>
13
<Link ID="3">
14
<Name>文章中心</Name>
15
<URL>?Class=Article</URL>
16
</Link>
17
<Link ID="4">
18
<Name>网页特效</Name>
19
<URL>?Class=JScript</URL>
20
</Link>
21
<Link ID="5">
22
<Name>网站收藏夹</Name>
23
<URL>?Class=Favorite</URL>
24
</Link>
25
<Link ID="6">
26
<Name>用户讨论区</Name>
27
<URL>?Class=GuestBook</URL>
28
</Link>
29
</MentList>
30
31
<PageSize>
32
<Article>20</Article>
33
<JScript>20</JScript>
34
<GuestBook>15</GuestBook>
35
</PageSize>
36
37
</Bluesky>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

在使用时只需要实例化该类,便可以使用。
set objDoc = new xmlReader
objDoc.getWebMenu("XML路径")
这样就可以调用该方法并显示网站的菜单页面了
因本人水平有限,如果你有更好的方法不妨交流和改正下,让偶也学习学习先。。
==================================================================
以下代码是在百度问到的,方法有点不一样,吸取了好的地方!!
1
'// 首先定义和创建XML对象
2
Dim oXML,oXMLRoot,oXMLItems,oXMLLinks,oXMLItem,iLength,i
3
4
Set oXML = CreateObject("Microsoft.XMLDOM") '// 或 MSXML2.DOMDocument
5
6
'// 然后加载XML文档
7
oXML.load "XML文件地址" '// 或:oXML.loadXML "XML内容"
8
9
'// 内容加载完成后,现在来加载它的节点信息
10
'// 获取XML所有节点
11
12
Set oXMLRoot = oXML.documentElement
13
'// 获取节点
14
Set oXMLItems = oXMLRoot.selectNodes("MentList")
15
16
'// 此时oXMLItems 变量中已经包含了所有MentList节点的内容。
17
'// 如果要获取它下面的 Link 节点的话,用以下语句
18
'// 获取节点,设 MentList 节点只有一个,那么0即是它的内容
19
oXMLLinks = oXMLItems(0).selectNodes("Link")
20
'// 获取节点长度(个数)
21
iLength = oXMLLinks.length - 1
22
23
For i = 0 To iLength
24
Set oXMLItem = oXMLLinks.item(i)
25
'// 用 getAttribute 方法来获取它的属性值
26
Response.write oXMLItem.getAttribute("ID")
27
'// 用 selectSingleNode 方法来获取它的节点值
28
Response.write oXMLItem.selectSingleNode("Name").text
29
Response.write oXMLItem.selectSingleNode("URL").text
30
Next
31
'// 释放XML对象
32
Set oXMLItem = Nothing
33
Set oXMLLinks = Nothing
34
Set oXMLItems = Nothing
35
Set oXMLRoot = Nothing
36
Set oXML = Nothing

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36
