利用XSLT把ADO记录集转换成XML(2)[转载]

利用XSLT把ADO记录集转换成XML(2)
http://www.51cto.com 2005-11-04 09:36 出处:51cto.com整理 <script language="javascript" src="/php/count.php?view=yes&artID=10816" type="text/javascript"></script>
 
 
 
一个更有效的方法,我们可以直接利用记录集内建的save方法,它能够自动地把记录集的内容转换成XML格式,我们调用save方法后,我们就可以立即释放内存中的记录集对象实例。 save方法有两个参数:一个是XML要保存的地方,一个是指示符,标明数据以何种格式保存。我们可以把数据保存成XML DOM对象(ADO STREAM对象),也可以直接保存成ASP RESPONSE对象,为通用起见,我们保存成XML DOM,第二个参数用adPersistXML ADO常量。方法如下:

 

&lt;%

Const adPersistXML = 1

Dim objXMLDOM

Set objXMLDOM = Server.CreateObject("MSXML2.DOMDocument.3.0")

objRecordset.save objXMLDOM, adPersistXML

Set objRecordset = Nothing

%&gt;

这种方法方便快捷,而且不容易出错,对不同的查询,也不用手动更改节点名字。但是,这种方法产生的XML不够简洁,看看它产生的结果:

&lt;xml

xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"

xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"

xmlns:rs="urn:schemas-microsoft-com:rowset"

xmlns:z="#RowsetSchema"&gt;

&lt;s:Schema id="RowsetSchema"&gt;

&lt;s:ElementType

name="row"

content="eltOnly"

rs:CommandTimeout="30"&gt;

&lt;s:AttributeType

name="ProductName"

rs:number="1"

rs:writeunknown="true"&gt;

&lt;s:datatype

dt:type="string"

dt:maxLength="40"

rs:maybenull="false"/&gt;

&lt;/s:AttributeType&gt;

&lt;s:AttributeType

name="UnitPrice"

rs:number="2"

rs:nullable="true"

rs:writeunknown="true"&gt;

&lt;s:datatype

dt:type="number"

rs:dbtype="currency"

dt:maxLength="8"

rs:precision="19"

rs:fixedlength="true"/&gt;

&lt;/s:AttributeType&gt;

&lt;s:AttributeType

name="UnitsInStock"

rs:number="3"

rs:nullable="true"

rs:writeunknown="true"&gt;

&lt;s:datatype

dt:type="i2"

dt:maxLength="2"

rs:precision="5"

rs:fixedlength="true"/&gt;

&lt;/s:AttributeType&gt;

&lt;s:extends type="rs:rowbase"/&gt;

&lt;/s:ElementType&gt;

&lt;/s:Schema&gt;

&lt;rs:data&gt;

&lt;z:row

ProductName="Chai"

UnitPrice="18"

UnitsInStock="39"/&gt;

&lt;z:row

ProductName="Konbu"

UnitPrice="6"

UnitsInStock="24"/&gt;

&lt;z:row

ProductName="Tofu"

UnitPrice="23.25"

UnitsInStock="35"/&gt;

&lt;/rs:data&gt;

&lt;/xml&gt;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值