使用純HTML的通用數(shù)據(jù)管理和服務(wù)_Xml教程
推薦:巧用XML做多語(yǔ)言界面的FLASH我就來(lái)確定流程吧。 1.先判斷操作系統(tǒng)的語(yǔ)言版本->2.讀取相關(guān)語(yǔ)言包 ->3.替換顯示字串 一、判斷系統(tǒng)語(yǔ)言 判斷語(yǔ)言有一個(gè)內(nèi)置函數(shù) System.capabilities.language,這個(gè)比較簡(jiǎn)單的,但你
使用純HTML的通用數(shù)據(jù)管理和服務(wù)。然而,為了收集數(shù)據(jù),你需要一個(gè)數(shù)據(jù)儲(chǔ)存庫(kù)。要避免使用數(shù)據(jù)庫(kù)服務(wù)器帶來(lái)的很多問(wèn)題,你可以在XML中收集這些數(shù)據(jù)。下面是我們的項(xiàng)目的基本結(jié)構(gòu):
<user>
<first_name/>
<last_name/>
<mi/>
</user>
我最初將數(shù)據(jù)限制為first name,last name和middle。這個(gè)頁(yè)面之后的基本思想是用戶信息在這個(gè)頁(yè)面中獲得。在用戶信息需求得到滿足以后,流程必須被轉(zhuǎn)到下一個(gè)邏輯收集步驟。為了使事情變得簡(jiǎn)單,我將把用戶功能包裝到一個(gè)ASP類中。
Function Coalesce(vVar, vAlt)
If vVal = "" Or VarType(vVal) = 1 Or VarType(vVal) = 0 Then
Coalesce = vAlt
Else
Coalesce = vVal
End If
End Function
Class CUser
Private m_SQL, m_DOM
Public Property Get DOM()
Set DOM = m_DOM
End Property
Public Sub saveUser()
m_SQL.save "save_user", m_DOM
End Sub
Public Function validate()
m_DOM.loadXML "<root>" & m_SQL.validateUser(m_DOM) & "</root>"
If Not m_DOM.selectSingleNode("//error") Is Nothing Then
validate = False
Else
validate = True
End If
End Function
Private Sub collectData(dom, oCollection)
Dim nItem, node, parent_node, n, sKey
For nItem = 1 To oCollection.Count
sKey = oCollection.Key(nItem)
Set parent_node = dom.selectSingleNode("//" & sKey & "s")
If Not parent_node Is Nothing Then
For n = 1 To oCollection(sKey).Count
Set node = parent_node.selectSingleNode(sKey & _
"[string(.)='" &
oCollection(sKey)(n) & "']")
If node Is Nothing Then
Set node = dom.createNode(1, sKey, "")
Set node = parent_node.appendChild(node)
End If
node.text = Coalesce(oCollection(sKey)(n), "")
Next
Else
Set node = dom.selectSingleNode("//" & sKey)
If Not node Is Nothing Then _
node.text = Coalesce(oCollection(sKey), "")
End If
Next
End Sub
Private Sub Class_Initialize()
Set m_SQL = New CSQL
Set m_DOM = Server.CreateObject("MSXML2.DOMDocument")
m_DOM.async = False
If VarType(Request ("txtUserXML")) = 0 Or Request ("txtUserXML") = "" Then
m_DOM.loadXML Request("txtUserXML")
Else
m_DOM.load "<root>" & Server.MapPath("user.xml") & "</root>"
End If
collectData m_DOM, Request.Form
collectData m_DOM, Request.QueryString
End Sub
Private Sub Class_Terminate()
Set m_SQL = Nothing
Set m_DOM = Nothing
End Sub
End Class
Class CSQL
Private m_DAL, m_Stream
Public Function save(sStoredProc, oDOM)
'adVarChar = 200
m_DAL.RunSP Array(m_DAL.mp("@xml_param", 200, 8000, oDOM.xml))
End Function
Public Function validateUser(oDOM)
Set m_Stream = m_DAL.RunSPReturnStream("validate_user", Array(_
m_DAL.mp("@xml_param", 200, 8000, oDOM.xml)))
validateUser = m_Stream.ReadText(-1)
m_Stream.Close
End Function
Private Sub Class_Initialize()
Set m_DAL = Server.CreateObject("MyPkg.MyDAL")
m_DAL.GetConnection "some connection string"
Set m_Stream = Server.CreateObject("ADODB.Stream")
End Sub
Private Sub Class_Terminate()
Set m_DAL = Nothing
Set m_Stream = Nothing
End Sub
End Class
CSQL類是基于一個(gè)數(shù)據(jù)訪問(wèn)層(m_DAL)組件MyPkg.MyDAL建立起來(lái)的。而這個(gè)組件則是基于Fitch和Mather DAL組件建立起來(lái)的,這兩個(gè)組件可以從MSDN找到。這樣我們就在SQL Server與你的代碼建立了橋梁。
當(dāng)CUser對(duì)象初始化之后,它收集Request數(shù)據(jù)并使用collectData()子函數(shù)將收集到的數(shù)據(jù)放到UserDOM的一個(gè)相應(yīng)的節(jié)點(diǎn)中。(代碼我不再解釋,因?yàn)樗旧硐喈?dāng)容易理解。)在收集了數(shù)據(jù)之后(或者不收集數(shù)據(jù)),我們將使用XSL將數(shù)據(jù)內(nèi)容轉(zhuǎn)變成布局。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=http://www.w3.org/1999/XSL/Transform
version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:if test="//error">
<font color="red">*Information in red is required<br/></font>
</xsl:if>
<xsl:apply-templates select="//user"/>
</xsl:template>
<xsl:template match="user">
<font>
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="//error[.='first name']">red</xsl:when>
<xsl:otherwise>black</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
First Name:
</font>
<input type="text" name="first_name">
<xsl:attribute name="value"><xsl:value-of
select="first_name"/></xsl:attribute>
</input><br/>
<font>
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="//error[.='mi']">red</xsl:when>
<xsl:otherwise>black</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
MI:
</font>
<input type="text" name="mi">
<xsl:attribute name="value"><xsl:value-of select="mi"/></xsl:attribute>
</input><br/>
<font>
<xsl:attribute name="color">
<xsl:choose>
<xsl:when test="//error[.='last_name']">red</xsl:when>
<xsl:otherwise>black</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
Last Name:
</font>
<input type="text" name="last_name">
<xsl:attribute name="value"><xsl:value-of
select="last_name"/></xsl:attribute>
</input><br/>
ver
分享:XML入門的一些常見(jiàn)的問(wèn)題總結(jié)(二)作者:AngelGavin 出處:CSDN Internet Explorer 5.0 對(duì) XML 提供哪個(gè)級(jí)別的支持? Internet Explorer 5 提供下列 XML 支持: 直接查看 XML。Microsoft XML 實(shí)現(xiàn)允許用戶
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開(kāi)發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語(yǔ)法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫(kù)
- WML教程之文本框控件Input
- 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測(cè)試模式 - XSL教程 - 5
Xml教程Rss訂閱編程教程搜索
Xml教程推薦
猜你也喜歡看這些
- 如何利用 DOM 進(jìn)行 Web 響應(yīng)
- 用ajax技術(shù)制作在線歌詞搜索功能
- HTML與XML的結(jié)合(上)
- WML學(xué)習(xí)(一):概述和基本規(guī)則
- 調(diào)用xsl來(lái)解析xml文檔(js異步)
- 淺談XML和XSLT結(jié)合使網(wǎng)站設(shè)計(jì)渾然一體
- XML教程之了解學(xué)習(xí) XML 屬性
- XML卷之實(shí)戰(zhàn)錦囊(5):結(jié)構(gòu)樹(shù)圖
- XML卷之實(shí)戰(zhàn)錦囊(1)——?jiǎng)討B(tài)排序
- 推薦:最新RSS 2.0規(guī)范(中文版)大全
- 相關(guān)鏈接:
- 教程說(shuō)明:
Xml教程-使用純HTML的通用數(shù)據(jù)管理和服務(wù)
。