如何用ASP操作XML(三)
来源:互联网 发布:ipad不能看淘宝直播么 编辑:程序博客网 时间:2024/05/27 08:13
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
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">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:element name="xml">
<xsl:for-each select="/xml/rs:data/z:row">
<xsl:element name="row">
<xsl:for-each select="@*">
<xsl:element name="{name()}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
这个XSLT具有可重用的特性,对于不同的查询结果都适用,下面就是如何使用这个XSLT的例子:
<%
Dim strCleanXML, objXMLDOM_XSLT
Set objXMLDOM_XSLT = CreateObject("MSXML2.DOMDocument")
objXMLDOM_XSLT.load(Server.MapPath("DataCleaner.xsl"))
strCleanXML = objXMLDOM.transformNode(objXMLDOM_XSLT)
Set objXMLDOM = Nothing
Set objXMLDOM_XSLT = Nothing
%>
经过上面的处理以后,strClaenXML就是我们所想要的XML字符串了。
<xml>
<row>
<ProductName>Chai</ProductName>
<UnitPrice>18</UnitPrice>
<UnitsInStock>39</UnitsInStock>
</row>
<row>
<ProductName>Konbu</ProductName>
<UnitPrice>6</UnitPrice>
<UnitsInStock>24</UnitsInStock>
</row>
</xml>
上面这种格式的XML字符串是我们经常见到的节点集的样式,如果您不想把字段处理成节点,而把它处理成属性节点,那么我们只需对DataCleaber.xsl稍加改动即可:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
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">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:element name="xml">
<xsl:for-each select="/xml/rs:data/z:row">
<xsl:element name="row">
<xsl:for-each select="@*">
<xsl:attribute name="{name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
以下是采用了新样式的结果,它比用节点表示字段的长度要短的多了。传输起来速度会更快:
<xml>
<row ProductName="Chai" UnitPrice="18" UnitsInStock="39"/>
<row ProductName="Konbu" UnitPrice="6" UnitsInStock="24"/>
</xml>
到此为止,我们介绍了从ADO 记录集得到XML格式数据的几种办法,也得到了最简化的字符串。但是有几个问题你仍然需要注意,有些字段值还有XML里不支持的字符,比如:"'<>&,象P&G宝洁公司的名称,Chef Anton's Gumbo Mix产品名字等,在做转换时要进行编码处理。在Microsoft ADO 2.6的SDK里有使用save方法时要注意的问题:1,save方法只对open Recordset起作用;2,不支持带有adVariant,adIDispatch,adIUnknown类型的字段的记录集的savw;3,当保存分级的记录集( data shapes)有两个限制:不能保存参数化和含有未解决的更新的记录集。
- 如何用ASP操作XML(三)
- 如何用ASP操作XML(三)
- 如何用ASP操作XML(一)
- 如何用ASP操作XML(二)
- 如何用ASP操作XML(四)
- 如何用Asp动态生成xml文件
- 如何用ADO.Net操作XML (转载)
- 如何用ADO.Net操作XML
- 如何用MSXML2操作XML配置文件
- 如何用asp操作Oracle数据库
- 如何用ASP生成XML数据文档(RSS订阅)
- 如何用ASP生成XML数据文档(zz)
- 如何用PHP来操作XML的内容
- 如何用asp制作图片
- 如何用ASP.Net從數据庫取數据生成并成送XML數据(不生成XML文件)?
- 如何用C#操作注册表
- 如何用YC++操作数据库
- 如何用YC++操作数据库
- 2000/xp中如何取得管理员权限(本机上)
- 字符串处理若干准则
- 如何用ASP操作XML(一)
- Oracle 9i中表的在线重定义
- 如何用ASP操作XML(二)
- 如何用ASP操作XML(三)
- 神奇的 DataGrid
- Zend Framework-Zend_View控制器脚本
- 如何用ASP操作XML(四)
- 省市县三级关联菜单
- DVI-I&DVI-D
- 如何退出应用程序
- 一生悬命的程序员
- 本地突破XP权限最方便的方法