总的来说还得使用到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
