asp如何以访问集合那样访问XML

asp如何以访问集合那样访问XML,第1张

使用ASP访问XML文件有两种方式:
● 作为文本流的简单结构文件;
● 作为XML DOM对象
本文使用的是第二种方式,DOM中常用的方法和属性有:
1 CreateObject()方法与load()方法
为给出的文件创建DOM,首先要使用CreateObject()方法创建DOM的实例。
下面是如何使用ASP在服务器上创建DOM的例子:
set oXMLDOM=serverCreateObject (“MicrosoftXMLDOM”)
XML DOM被创建后,它必须装入一个XML文件。例如:
oXMLDOMload(“d:\studentsxml”)
创建了DOM对象并载入了XML文件后,就可以使用DOM的方法和属性来访问文件了。
2 getElementsByTagName()方法
Document对象的getElementsByTagName方法可以取得所有具有所传参数指定的名字的后续元素的列表,
它返回一个NodeList对象。
例如: set recordlist=oXMLDOMgetElements-
ByTagName(“student”)
3 item()方法
nodeList对象的item()方法将一个索引作为参数,返回这个索引位置上的节点。如果这个索引超出了范围,
那么就返回空值。注意:计数器总是从零开始。
4.Length属性
nodeList对象的Length属性返回一个无符号的长整数,为NodeList中节点的个数。
5.Childnodes属性
Childnodes是node对象的一个属性,它返回这个节点的所有子节点的NodeList。
例如: recordlistitem(i)childnodesitem(j)
text指的是第i+1个student的第j+1个子节点的值(因为计数器总是从零开始)。
假设i=1,j=0,则recordlistitem(i)childnodesitem(j)text的值为“alice”,
即为第2个student的第1个子节点(name)的值。
程序说明
下面的程序访问XML文件studentsxml,并将其数据写入数据库ST的students表中。
为了使程序尽量简洁,假设空表students已存在于数据库ST中。程序的实现步骤如下:
1.连接数据库ST,打开表students,创建Recordset对象
Set conn=serverCreateObject(“ADODB
connection”)
connOpen “dsn=st;uid=sa;pwd=;database=st”
Set myrecord=servercreateobject(“ADODB
Recordset”)
myrecordopen “students”,conn,1,3
2. 创建DOM的实例oXMLDOM
set oXMLDOM=serverCreateObject (“MicrosoftXMLDOM”)
3. 载入XML文件studentsxml
oXMLDOMload(“d:\studentsxml”)
4. 使用DOM的getElementsByTagName()方法创建所有student元素的节点清单
set recordlist=oXMLDOMgetElementsByTag-
Name(“student”)
5.使用一个双重循环将XML文件中的数据读出,写入数据库表中
’用外循环遍历各student
for i=0 to recordlistlength-1
’用内循环取得每个student的各节点的值,存入数组sp
for j=0 to recordlistitem(i)childnodes
length-1
sp(j)= recordlistitem(i)childnodes
item(j)text
next
’在表students中增加一条记录,并将数组sp的值写入各字段(注意数据类型的转变)
myrecordAddNew
myrecord(“name”)value=sp(1)
myrecord(“birthday”)value=cdate(sp(3))
myrecord(“score”)value=cint(sp(4))
myrecordUpdate
next
6.关闭所创建的实例与对象
set oxmldom=nothing
set recordlist=nothing
myrecordClose
Set myrecord=nothing

网上 copy改写的
建立xml我就不说了
<%
set xmldoc=servercreateobject("Microsoftxmldom")
xmldocload(servermappath("datexml"))
responseWrite(xmldocselectsinglenode("//>既然你知道怎么解析,那剩下的问题就只有读取,用FSO就可以了:
<%
Dim xml_str '保存xml字符串的变量
xml_str=""
Set fs=ServerCreateObject("ScriptingFileSystemObject")
Set f=fsOpenTextFile("C:\123xml", 1)
do while fAtEndOfStream = false
xml_str = xml_str & fReadLine
loop
fClose
Set f=Nothing
Set fs=Nothing
%>

xmlAddr = ""地址
xmlObj = servercreateObject("MicrosoftXMLDOM")
XMLObjload(xmlAddr)
XMLNode = XMLObjselectsigleNode("root/sheng[id=2]")
然后对xmlNODE进行处理吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13386792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存