麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > XML > 正文

XML 和XSLT結(jié)合使你的網(wǎng)站設(shè)計(jì)渾然一體

2024-09-05 20:56:12
字體:
供稿:網(wǎng)友
如果你還未考慮采用一種單一的、緊密結(jié)合的方式進(jìn)行網(wǎng)頁設(shè)計(jì)的話,請(qǐng)看本文。

在網(wǎng)絡(luò)發(fā)展初期,凝聚性(cohesiveness)是由服務(wù)器端實(shí)現(xiàn)的,但要牽涉到大量的人工文件管理工作。幸運(yùn)的是,隨著網(wǎng)絡(luò)的日益成熟,網(wǎng)絡(luò)開發(fā)工具也日臻完善。例如,在.NET框架下,你可以創(chuàng)建各種Web控件來統(tǒng)一設(shè)計(jì)。

XML和XSLT的轉(zhuǎn)換使Web設(shè)計(jì)受益無窮。借助XML和 XSLT轉(zhuǎn)換,你可以實(shí)現(xiàn)將動(dòng)態(tài)用語(dynamic verbiage)和網(wǎng)站內(nèi)容存儲(chǔ)在數(shù)據(jù)庫(kù)中。你可以在XML中傳輸數(shù)據(jù)庫(kù),然后再通過XSLT轉(zhuǎn)換將其轉(zhuǎn)變?yōu)镠TML腳本。本文中,我將提供一個(gè)網(wǎng)站實(shí)例,并說明XML 和XSLT如何使你的網(wǎng)站設(shè)計(jì)渾然一體。

在設(shè)計(jì)用戶/數(shù)據(jù)交互功能時(shí),我最為關(guān)心的是數(shù)據(jù)的完整性、用戶界面的功能性和商務(wù)規(guī)則的完善實(shí)現(xiàn)。我最不關(guān)心的是按鈕的顏色。而這些細(xì)枝末節(jié)卻往往是程序員發(fā)揮技術(shù)的地方。

當(dāng)設(shè)計(jì)一個(gè)全新的頁面時(shí),我只投入最低限度的精力用于用戶界面的設(shè)計(jì),如只安置一個(gè)文本框和一個(gè)提交按鈕。對(duì)于本例中的HTML網(wǎng)頁,我增加了兩個(gè)INPUT標(biāo)簽來完成這一任務(wù)。

以下為引用的內(nèi)容:
<html>
<head>
</head>
<body>
<form method="POST" name="thisForm" id="thisForm" action="somepage.php">
<input type="text" name="txtText" id="txtText" size="25"><br>
<input type="submit" name="btnSubmit" id="btnSubmit" value="Submit">
</form>
</body>
</html>

以上代碼段完成了主要功能,但還需用XML和XSLT來對(duì)其加以美化。

在XML中,代碼有開頭和結(jié)尾標(biāo)簽,而在HTML中沒有。INPUT 和BR標(biāo)簽是個(gè)特例,它們不需結(jié)尾標(biāo)簽。然而,在結(jié)尾標(biāo)簽標(biāo)記“>”前加一個(gè)正斜杠,可確保HTML符合XML規(guī)范。如果在編寫HTML腳本時(shí)注意遵從這些規(guī)范,你就能夠?qū)ML/HTML(aka XHTML)轉(zhuǎn)換為不錯(cuò)的HTML頁面。

以下為引用的內(nèi)容:
<form method="POST" name="thisForm" id="thisForm" action="somepage.php">
<input type="text" name="txtText" id="txtText" size="25" transform="blueText"/>
<br/>
<input type="submit" name="btnSubmit" id="btnSubmit" value="Submit"
transform="bigButton"/>
</form>

運(yùn)行下列代碼,完成XSLT轉(zhuǎn)換:

以下為引用的內(nèi)容:

<?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="/">
    <table width="100%" cellpadding="0" cellspacing="0">
    <tr><td align="center">This is the defined header</td></tr>
    <tr><td><xsl:apply-templates select="//form"/></td></tr>
    <tr><td align="center">This is the defined footer</td></tr>
    </table>
</xsl:template>

<xsl:template match="form">
<xsl:element name="form">
    <xsl:attribute name="method"><xsl:value-of
select="@method"/></xsl:attribute>
    <xsl:attribute name="action"><xsl:value-of
 select="@action"/></xsl:attribute>
    <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
    <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
    <xsl:apply-templates select="*"/>
</xsl:element>
</xsl:template>
<xsl:template match="*">
    <xsl:choose>
        <xsl:when test="@transform='blueText'"><xsl:element name="input">
            <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
            <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
            <xsl:attribute name="type">text</xsl:attribute>
            <xsl:attribute name="style">color:blue</xsl:attribute>
            <xsl:if test="@value"><xsl:attribute name="value"><xsl:value-of
select="@value"/></xsl:attribute></xsl:if>
            </xsl:element>
        </xsl:when>
        <xsl:when test="@transform='redText'"><xsl:element name="input">
            <xsl:attribute name="name"><xsl:value-of
select="@name"/></xsl:attribute>
            <xsl:attribute name="id"><xsl:value-of
select="@id"/></xsl:attribute>
            <xsl:attribute name="type">text</xsl:attribute>
            <xsl:attribute name="style">color:red</xsl:attribute>
            <xsl:if test="@value"><xsl:attribute name="value"><xsl:value-of
 select="@value"/></xsl:attribute></xsl:if>

            </xsl:element>
        </xsl:when>
        <xsl:when test="@transform='bigButton'"><xsl:element name="input">
            <xsl:attribute name="name"><xsl:value-of
select="@name"/></xsl:attribute>
            <xsl:attribute name="id"><xsl:value-of
select="@id"/></xsl:attribute>
            <xsl:attribute name="style">height:30px;width:100px;font-
size:18pt;font-weight:700;</xsl:attribute>
            <xsl:attribute name="value"><xsl:value-of
select="@value"/></xsl:attribute>
            </xsl:element>
        </xsl:when>
    </xsl:choose>
</xsl:template>
</xsl:stylesheet>

以上代碼無法為你實(shí)現(xiàn)創(chuàng)建命名空間、定義XML標(biāo)簽、確認(rèn)DTD或schema。它使你能夠創(chuàng)建可行的HTML腳本,并可轉(zhuǎn)化為完整的新頁面,無需擔(dān)心設(shè)計(jì)因素。

在樣式表中,我用HTML標(biāo)簽的轉(zhuǎn)換屬性驅(qū)動(dòng)轉(zhuǎn)換操作。我曾考慮用一個(gè)FORM窗體作為定義轉(zhuǎn)換操作所需的用戶控件的單元,因?yàn)樗杏糜谟脩糨斎氲目丶紤?yīng)在一個(gè)FORM中。本例中,輸出為一個(gè)文本INPUT,文本顏色為藍(lán)色;一個(gè)高20像素、寬100像素的按鈕,字體為18點(diǎn)加粗。我可以通過修改轉(zhuǎn)換屬性來改變文本框中的文本顏色。

有多種方法可將靜態(tài)內(nèi)容添加到網(wǎng)頁中,但出于演示目的,我只采用最簡(jiǎn)單的方式,即在樣式表中增加header和footer。

現(xiàn)在,當(dāng)我要?jiǎng)?chuàng)建一個(gè)新窗體用于用戶輸入時(shí),我要做的只是創(chuàng)建一個(gè)一般窗體。一旦一般窗體通過測(cè)試,我就可以將這些窗體添加到轉(zhuǎn)換中生成主題的HTML輸出。你只要記住輸入控件類型,并注意把它添加為轉(zhuǎn)換屬性即可。

達(dá)到目的的方法有很多種,通過這個(gè)例子,我希望能幫助你們學(xué)會(huì)如何標(biāo)準(zhǔn)化HTML輸出。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 99麻豆久久久国产精品免费 | 偿还电影免费 | 91av在线免费视频 | 午夜精品久久久久久久爽 | 久久久久久亚洲综合影院红桃 | 欧美一级高清片在线 | 国产精品99久久久久久宅女 | 国产一区二区免费在线观看视频 | 粉嫩蜜桃麻豆免费大片 | 亚洲四播房 | a级毛片免费观看在线播放 日本aaa一级片 | 久久久久亚洲视频 | 日韩视频二区 | 久久久久久久久久网 | 91色琪琪电影亚洲精品久久 | 成年人在线视频观看 | 国产精品久久久久久久成人午夜 | 亚洲午夜国产 | 国产亚洲高清在线精品不卡 | 欧美日韩亚洲一区二区三区 | 婷婷中文字幕一区二区三区 | 免费男女视频 | 激情久久一区二区 | 国内精品久久久久久2021浪潮 | 午夜视频色 | 欧美城网站地址 | 成人免费网视频 | 亚洲片在线观看 | 久久久精品视频免费看 | 久青草免费视频 | 亚洲一级片免费观看 | 亚洲人成在线播放网站 | 88xx成人永久免费观看 | 亚洲成在人 | 高清国产在线 | 成人国产高清 | 亚洲成人自拍电影 | 黄色网址入口 | 亚洲国产色婷婷 | 久久亚洲精品视频 | 男人天堂新地址 |