影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

 找回密碼
 注冊(開放注冊)
查看: 6507|回復: 0
打印 上一主題 下一主題

[應用技術(shù)] 使ASP程序跨瀏覽器

[復制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2007-11-15 17:29:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用XML存儲的數(shù)據(jù)給我們帶來了極大的方便,而且,XML是跟平臺無關的。利用XSLT可以將XML轉(zhuǎn)換成任意格式的文檔,比如HTML。另外還可以使用這種方法來實現(xiàn)跨平臺瀏覽器(IE,火狐,WAP瀏覽器等)的支持。比如用如下ASP代碼獲取客戶端瀏覽器類型:

<%
Dim objBrowsCap
Set objBrowsCap = Server.CreateObject("MSWC.BrowserType")
%>
瀏覽器(Browser):<%=objBrowsCap.browser%>
瀏覽器版本(Version):<%=objBrowsCap.version%>

然后通過判斷瀏覽器的類型來使用不同的XSLT對你的XML數(shù)據(jù)進行轉(zhuǎn)換。

下面是轉(zhuǎn)換XML的方法:

<%
function Transform(xmlPath,xsltPath) Dim result, xsltDocument,xmlDocument Set xmlDocument=CreateObject("MSXML2.DOMDocument") xmlDocument.load(Server.MapPath(xmlPath)) Set xsltDocument = CreateObject("MSXML2.DOMDocument") xsltDocument.load(Server.MapPath(xsltPath)) result = xmlDocument.transformNode(xsltDocument) Set objXMLDOM = Nothing Set objXMLDOM_XSLT = Nothing Transform=result end function
%>

參數(shù)xmlPath指定將被轉(zhuǎn)換的XML的文件名。
參數(shù)xsltPath指定xls的文件名。

下面是將XML轉(zhuǎn)換成HTML的一個實例:
1、 XML存儲的數(shù)據(jù)文件(table.xml):
<?xml version="1.0" encoding="utf-8" ?>
<Items>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
<Item>
<Url>http://blog.163.com/lxd_201/&lt;/Url>
<Title>☆聊ゾ聊☆</Title>
</Item>
</Items>

2、 XSLT文件(table.xsl):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:copyRight="http://xml.sz.luohuedu.net/">
<xsl:template match="/">
<!-- 定義常量 -->
<xsl:variable name="strTrLeft" select="'<tr>'"/>
<xsl:variable name="strTrRight" select="'</tr>'"/>
<!-- 計算總記錄數(shù) -->
<xsl:variable name="nTotal" select="count(/Items/Item)"/>
<!-- 定義列數(shù) -->
<xsl:variable name="nCols" select="4"/>
<!-- 當最后一行輸出的單元格小于實際的列數(shù)的時候,用空內(nèi)容補齊所缺的單元格。計算需要的補齊的列數(shù) -->
<xsl:variable name="nLefted" select="$nCols - ($nTotal mod $nCols)"/>
<!-- 計算不需要補齊的行數(shù) -->
<xsl:variable name="nNotProcessedRow" select="$nTotal - ($nTotal mod $nCols)"/>
<table bgcolor="snow" border="1" cellpadding="5" cellspacing="2" borderColor="blue"
style="font-size:9pt">
<!-- 對于不需要補齊的行數(shù),直接輸出 -->
<xsl:for-each select="/Items/Item[position() < $nNotProcessedRow +1]">
<xsl:if test="position() mod $nCols = 1">
<xsl:value-of select="$strTrLeft" disable-output-escaping="yes"/>
</xsl:if>
<td>
<a target="_blank">
<xsl:attribute name="href">
<xsl:if test="contains(Url,'@')">mailto:</xsl:if>
<xsl:value-of select="Url"/>
</xsl:attribute>
<xsl:value-of select="Title"/>
</a>
</td>
<xsl:if test="position() mod $nCols = 0">
<xsl:value-of select="$strTrRight" disable-output-escaping="yes"/>
</xsl:if>
</xsl:for-each>
<!-- 轉(zhuǎn)換除去不需要補齊的記錄的剩余記錄 -->
<xsl:if test="$nLefted != 0 and $nLefted != $nCols">
<xsl:value-of select="$strTrLeft" disable-output-escaping="yes"/>
<xsl:for-each select="/Items/Item[position() >$nNotProcessedRow]">
<td>
<a target="_blank">
<xsl:attribute name="href">
<xsl:if test="contains(Url,'@')">mailto:</xsl:if>
<xsl:value-of select="Url"/>
</xsl:attribute>
<xsl:value-of select="Title"/>
</a>
</td>
</xsl:for-each>
<!--
如果nLefted不等于0和列數(shù),則需要進行補齊,這里進行遞歸調(diào)用,需要傳遞的參數(shù)有兩個:
nLefted:要補齊的列數(shù);
nCols:表格的列數(shù)。
-->
<xsl:call-template name="MyFun">
<xsl:with-param name="nLefted" select="$nLefted"/>
<xsl:with-param name="nCols" select="$nCols"/>
</xsl:call-template>
<xsl:value-of select="$strTrRight" disable-output-escaping="yes"/>
</xsl:if>
</table>
<p>
<xsl:value-of select="$nTotal"/>
</p>
</xsl:template>
<xsl:template name="MyFun">
<xsl:param name="nLefted"/>
<xsl:param name="nCols"/>
<xsl:if test=" $nLefted != 0 and $nLefted != $nCols">
<td>
<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
</td>
<xsl:call-template name="MyFun">
<xsl:with-param name="nLefted" select="$nLefted - 1"/>
<xsl:with-param name="nCols" select="$nCols"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

3、 ASP代碼(index.asp):
<%
function Transform(xmlPath,xsltPath)
Dim result, xsltDocument,xmlDocument

Set xmlDocument=CreateObject("MSXML2.DOMDocument")
xmlDocument.load(Server.MapPath(xmlPath))

Set xsltDocument = CreateObject("MSXML2.DOMDocument")
xsltDocument.load(Server.MapPath(xsltPath))
result = xmlDocument.transformNode(xsltDocument)

Set objXMLDOM = Nothing
Set objXMLDOM_XSLT = Nothing
Transform=result
end function
%>

<%
htmlResult=Transform("table.xml","table.xsl")
response.Write(htmlResult)
%>
來原:www
您需要登錄后才可以回帖 登錄 | 注冊(開放注冊)

本版積分規(guī)則

手機訪問本頁請
掃描左邊二維碼
本網(wǎng)站聲明
本網(wǎng)站所有內(nèi)容為網(wǎng)友上傳,若存在版權(quán)問題或是相關責任請聯(lián)系站長!
站長電話:0898-66661599    站長聯(lián)系QQ:12726567   
站長微信:hainanok
請掃描右邊二維碼
www.myujob.com

小黑屋|手機版|Archiver|電子科大論壇-非清水河畔 ( 瓊ICP備10001196號-2 )

GMT+8, 2025-11-6 20:30 , Processed in 0.136579 second(s), 14 queries .

Powered by 校園招聘信息

© 2001-2020 電子科大論壇-非清水河畔校園招聘

快速回復 返回頂部 返回列表