• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            流量統計:
            Rixu Blog (日需博客)
            日需博客,每日必需來踩踩哦..
            posts - 108,comments - 54,trackbacks - 0

            XSL 指擴展樣式表語言(EXtensible Stylesheet Language)

            萬維網聯盟開始發展 XSL 的起因是由于對基于 XML 的樣式表語言的需求。

            XSLT 指 XSL 轉換。XSLT 將 XML 文檔轉換為其他文檔,比如 XHTML

            概念不多講,這里附上W3C的網址 ,希望您一定要去看看!

            老規矩,先寫出個能運行的程序再說。

            既然XSLT是將XML文檔轉換為其它文檔,那么我們就先建立一個XML文檔吧。(名為:HelloHtml.xml)

            <?xml version="1.0" encoding="utf-8" ?>
            <root>
            <greeting>Hello Angel</greeting>
            </root>

            同樣,還要再建立一個xslt文件,這里把它們放到同一個目錄下。(名為:HelloHtml.xslt)

            <?xml version="1.0" encoding="utf-8"?>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:msxsl
            ="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
            <xsl:output method="html" indent="yes"/>
            <xsl:template match="root">
            <h1><xsl:value-of select="greeting"/></h1>
            </xsl:template>
            </xsl:stylesheet>

            想來xml文件應該不用講解了,那就看看xslt文件吧:

            首先,它也是一個xml文檔,stylesheet節點標記了此xsl樣式文件的版本,xmlns(xml命名空間)等信息。output標記中method聲明以什么形式轉換文檔,當然,它不僅僅能做html轉換,也可以做其它諸如xml,text,pdf等轉換。 ident聲明了是否要對輸出文檔作縮進。

            template標記聲明這是一個轉換模板,match標記聲明了它將對哪個節點下的元素進行匹配。

            value-of標記是個取值指令,它將會把xml文檔中元素名為select中指定的元素的值取出來作為轉換后的數據。

            由此分析,經轉換后輸出的html內容應該是:

            <h1>Hello Angel</h1>

            由于xslt為WEB標準,并且被大多數主流瀏覽器所支持,所以僅僅需要將xml文件與xslt文件都發送到客戶端,瀏覽器就會自動將其轉換為XHTML文檔。

            接下來就是要給xml檔引入xslt樣式表了,這樣xslt才能對xml文檔進行轉換,在xml文件的版本聲明后加上這樣一句:

            <?xml-stylesheet type="text/xsl" href="/HelloHtml.xslt"?>

            此時再瀏覽xml文件,就會看到瀏覽器不是僅僅顯示一個XML的文檔樹了(有些瀏覽器顯示純xml文檔是純文本格式的),而應該是一個又大又粗的一號標題文本:



            但它并不是一個標準的XHTML文檔,因為轉換后生成的內容僅僅是如下的:

            <h1>Hello Angel</h1>

            而一個標準的xhtml文檔至少應該是下面:(當然,這里是xhtml1.1版本的,DOCTYPE可能會有所不同)

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title></title>
            </head>
            <body>
            <h1>Hello Angel</h1>
            </body>
            </html>

            如何才能輸出這樣一個文檔呢?當然,看了上面的例子后,你一定能把除了DOCTYPE之外的其它元素都完整地輸出,但關鍵就是要輸出DOCTYPE,因為如果一個html/xhtml文檔如果沒有一個正確的doctype,將可能會觸發瀏覽器的怪異模式,這將有可能造成瀏覽器對內容的顯示非?;靵y,當然,即使是小小的差異,只要是不可預料的也確實是件令人頭痛的事情!

            其實output指令還有兩個屬性,一個是doctype-public,一個是doctype-system。正好對應html/xhtml DOCTYPE中的PUBLIC和后面的SYSTEM聲明。

            那么我們只用這樣寫,便可以輸出符合標準的html/xhtml文檔了:

            <?xml version="1.0" encoding="utf-8"?>
            <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
            xmlns:msxsl
            ="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
            <xsl:output method="html" indent="yes" doctype-public="-//W3C//DTD XHTML 1.1//EN"
            doctype-system
            ="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
            <xsl:template match="root">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            <title>Index</title>
            </head>
            <body>
            <h1>
            <xsl:value-of select="greeting"/>
            </h1>
            </body>
            </html>
            </xsl:template>
            </xsl:stylesheet>

            看似一切都搞定了,也沒有多少東西,但事實上并不是這樣的。因為可能我們想要把產品列表放到一個文檔中,評論信息又放入一個文檔中,然后還要把它們合并成為一個文檔。大多數情況下我們是沒有一個現成的xml文檔的。那些東西也是要動態生成的。我們還可能需要復雜的選擇運算等等。。。

            還有就是,本來網站上使用了點ajax對SEO就有點不太友好了,再加入xml/xslt這東東,網站的SEO怎么顧全呢?

            下接著會看看多文檔合并的問題,接著是解決SEO問題。。??傊?,會把如何使用xslt制作符合標準的網站告訴您。而且還要提前告訴您下,雖然接下來要在服務器端使用xslt,但我們已經可以擺脫WebForm的page以提升性能,再加上所有跟數據、樣式、HTML相關的內容都是純文本的,并沒有絲毫編譯到DLL中去,也將大大方便將來對網站的維護。


            Logo
            作者:Gezidan
            出處:http://www.rixu.net    
            本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

            本文轉載自 http://www.cnblogs.com/javennie/archive/2011/09/27/xsltgreeting.html
            posted on 2011-09-28 10:24 日需博客 閱讀(276) 評論(0)  編輯 收藏 引用 所屬分類: C#技術文章 、轉載
            久久久久se色偷偷亚洲精品av | 久久久久亚洲AV无码去区首| 香蕉99久久国产综合精品宅男自| 精品久久久久中文字幕日本| 精品久久久久久综合日本| 狠狠色噜噜狠狠狠狠狠色综合久久| 久久香蕉综合色一综合色88| 亚洲精品乱码久久久久久蜜桃| 久久精品中文闷骚内射| 99久久精品无码一区二区毛片 | 国产亚洲精久久久久久无码77777| 久久国产精品久久| 日产精品久久久一区二区| 久久精品国产99久久久香蕉| 久久久无码精品亚洲日韩蜜臀浪潮 | 色偷偷88欧美精品久久久| 国产午夜免费高清久久影院| 欧美国产成人久久精品| 久久精品99无色码中文字幕| 99久久免费国产特黄| 亚洲精品无码久久久久久| 亚洲Av无码国产情品久久| 亚洲国产成人久久综合一| 久久精品人人做人人爽97| 2021国内久久精品| 怡红院日本一道日本久久| 久久久久无码精品国产| 欧美一区二区三区久久综| 国产精品久久久香蕉| 亚洲人成无码网站久久99热国产 | 偷偷做久久久久网站| 欧美午夜精品久久久久久浪潮| 99久久精品免费国产大片| 亚洲国产二区三区久久| 国产叼嘿久久精品久久| 久久久久久a亚洲欧洲aⅴ| 91久久精品视频| 久久综合九色综合欧美就去吻| 国产女人aaa级久久久级| 欧美亚洲另类久久综合婷婷| 欧美精品丝袜久久久中文字幕 |