华软网-中国程序员根据地!

 
您现在的位置: 华软网 >> 网站开发 >> XML >> 应用技巧 >> 正文

利用XSLT把ADO记录集转换成XML

  作者:佚名    技巧来源:不详    点击数:    更新时间:2005-12-21
XMLDOM.createElement("row")
Set objNode = objXMLDOM.createElement("ProductName")
objNode.text = objRecordset.Fields.ITem("ProductName").Value
objRowNode.appendChild(objNode)

Set objNode = objXMLDOM.createElement("UnITPrice")
objNode.text = objRecordset.Fields.Item("UnITPrice").Value
objRowNode.appendChild(objNode)

Set objNode = objXMLDOM.createElement("UnITsInStock")
objNode.text = objRecordset.Fields.Item("UnITsInStock").Value
objRowNode.appendChild(objNode)

objRootNode.appendChild(objRowNode)

objRecordset.MoveNext
Loop

Set objNode = Nothing
Set objRowNode = Nothing
Set objRootNode = Nothing

Set objRecordset = Nothing
%>

现在,我们就得到了一个XML DOM对象。这种方法对于记录集很大时性能并不理想,因为系统内存中要同时保存ADO记录集对象和XML DOM对象。
第二个办法,遍历记录集,直接生成XML字符串本身:

<%
Dim strXML
strXML = "<XML>"
objRecordset.MoveFirst
Do While NOT objRecordset.EOF
strXML = strXML & "<row>"
strXML = strXML & "<ProductName>" _
& objRecordset.Fields.ITem("ProductName").Value _
& "</ProductName>"
strXML = strXML & "<UnITPrice>" _
& objRecordset.Fields.Item("UnITPrice").Value _
& "</UnITPrice>"
strXML = strXML & "<UnITsInStock>" _
& objRecordset.Fields.Item("UnITsInStock").Value _
& "</UnITsInStock>"
strXML = strXML & "</row>"
objRecordset.MoveNext
Loop
strXML = strXML & "</XML>"
Set objRecordset = Nothing
%>

但是,以上两种方法最大的缺陷是不能够重用代码,我们把节点的名字都写死了,如果我们进行不同字段的查询,我们还必须手动更改我们的代码,以满足不同节点的需要。我们下面的方法将变得更加通用。
第三种方法:可重用的方法。

<%
Dim strXML
strXML = "<XML>"
objRecordset.MoveFirst
Do While NOT objRecordset.EOF
strXML = strXML & "<row&am

上一页  [1] [2] [3] [4] [5] [6] 下一页


华软网声明:本站内容全部来自网络,如有侵犯您版权请来信指出,本站立即删除。
进入论坛讨论:利用XSLT把ADO记录集转换成XML
本站热门下载
网站服务
最近更新的技巧