<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    編程之道

    無(wú)論是批評(píng)的,贊揚(yáng)的,指著的都請(qǐng)EMAIL給我,你的建議將是我前進(jìn)的動(dòng)力! 聯(lián)系我

    XML回憶錄-學(xué)不可以已

             考試終于考好了,休息了一天然后繼續(xù)以前未完成的struts框架學(xué)習(xí)。其實(shí)我知道怎么用config.xml。就是沒(méi)搞懂為什么config.xml能夠把MVC給聯(lián)系起來(lái),于是決定復(fù)習(xí)一下XML。
             XML 可用于各種不同的應(yīng)用程序,但其實(shí)質(zhì)是:XML 是一種表示數(shù)據(jù)的方式。

             1。文檔定義類型和命名空間
    1.1   XML的強(qiáng)大之處在于它可以自己定義標(biāo)記,但是需要一個(gè)文檔來(lái)定義標(biāo)記的含義,這樣解析器才能核查數(shù)據(jù)是否正確。這個(gè)文檔定義類型被成為(Document Type Definition)DTD.
    比方說(shuō)一個(gè)XML文件
    <peson name="john" sex="male"/>
    里有個(gè)sex屬性,那性別的話除了男就是女了,解析器本來(lái)是不知道sex是性別的意思,那屬性值怎么填都不會(huì)錯(cuò)的。如果想讓解析器知道sex值只能是男或女,那就要定義DTD
    <!DOCTYPE 根元素 [
             <!ELEMENT peson EMPTY>
             <!ATTLIST peson
                name CDDATA #REQUIRED
                sex (MALE | FEMALE) #REQUIRED   
             >
    ]>
       我其實(shí)并不喜歡DTD,DTD和XML怎么看都很不舒服。

    1.2   命名空間   主要目的是為了避免(元素名相同,內(nèi)容不同)。不過(guò)前面翻閱IBM資料庫(kù)的時(shí)候一篇文章里寫(xiě)命名空間可能要被W3C取消掉了。

        
                2。用CSS和XSL顯示XML文檔
     2.1      由于XML主要是用來(lái)描述數(shù)據(jù)的,所以在顯示數(shù)據(jù)方面沒(méi)有HTML那么直接,想要達(dá)到HTML那樣的效果,就需要CSS和XSL樣式表。
    寫(xiě)2個(gè)例子一看就明白了:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--引用一個(gè)外部CSS樣式表-->
    <?xml:stylesheet  type="text/css" href="test.css"?>
    <!--引用一個(gè)xsl樣式表-->
    <?xml:stylesheet  type="text/xsl" href="test.xsl"?>
    <Resume>
    <ID id="1">
     
    <Name>John</Name>
     
    <Sex>male</Sex>
     
    <Age>22</Age>
     
    <Skill>IT</Skill>
     
    </ID>
     
    <ID id="2">
     
    <Name>Tom</Name>
     
    <Sex>male</Sex>
     
    <Age>25</Age>
     
    <Skill>Worker</Skill>
     
    </ID>
    </Resume>

    <!--test.css-->
    Resume
    {display: block;}
    id
    {display: block;}
    Name
    {display: block; font-size:120%;}
    Sex
    {display:red; text-indent:2em}
    Skill
    { display:red; text-indent:2em}
    Age
    { display:red; text-indent:2em}
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
        
    <xsl:template match="Resume">
        
    <html>
            
    <head>
                
    <title>簡(jiǎn)歷</title>
            
    </head>
            
    <body>
                
    <xsl:for-each select="ID">
                
    <font color="red"><xsl:value-of select="Name"/></font><br></br>                
                
    <xsl:value-of select="Sex"/><br></br>                
                
    <xsl:value-of select="Age"/><br></br>                
                
    <xsl:value-of select="Skill"/><br></br>        
                
    <p></p>
                
    </xsl:for-each>
            
    </body>
        
    </html>
        
    </xsl:template>
    </xsl:stylesheet>

    XSL語(yǔ)法還是比較簡(jiǎn)單的,可以說(shuō)一看就明白。兩者比較一下,還是XSL直觀,靈活一點(diǎn),不過(guò)還是不方便,這也是為什么HTML還如此鼎盛的原因。
    2.2   簡(jiǎn)單介紹下XSL的語(yǔ)法
     2.21     XSL中最重要的概念就是模板,它是由一個(gè)一個(gè)模板組成。
    //定義模板
     <xsl:template match="/">
    ....
     <xsl:apply-templates select="Resume" />//調(diào)用該模板,有點(diǎn)象調(diào)用方法();
    .....
     </xsl:template>
    //(方法定義)
     <xsl:template match="Resume">
    ......
     </xsl:template>

     2.22   判斷語(yǔ)法
       循環(huán)語(yǔ)句
    <xsl:for-each select="元素名稱"></xsl:for-each>
       條件語(yǔ)句
    <xsl:if test=""></xsl:if>



     

                 3。文檔對(duì)象模型DOM和SAX

    3.1  DOM把文檔作為一個(gè)對(duì)象,通過(guò)編程的方式來(lái)查詢或改變文檔。
    DOM是XML在內(nèi)存中的樹(shù)狀結(jié)構(gòu),當(dāng)XML文件被載人解析器中解析后,在內(nèi)存中就建立了一顆相應(yīng)的樹(shù)。
    3.2   什么是XML解析器?
          解析就是讀取文檔并將文檔分解為能夠進(jìn)行分析的元素的過(guò)程。XML解析器是WEB應(yīng)用程序最基本勾踐塊。它是有2個(gè)基本API組成:DOM 和SAX。
    3.3   DOM的優(yōu)點(diǎn)在于可以進(jìn)行隨機(jī)重復(fù)訪問(wèn);缺點(diǎn)就是由于DOM是將XML文檔全部載入內(nèi)存中,所以對(duì)內(nèi)存消耗很大,不適合比較大的XML文檔。
         
    3.4   SAX是可擴(kuò)展標(biāo)記語(yǔ)言的簡(jiǎn)單應(yīng)用程序編程接口。由于SAX解析時(shí)不創(chuàng)建顯示數(shù)據(jù)結(jié)構(gòu),因此它比DOM的效率更好。
    不過(guò)它的缺點(diǎn)就是只能讀只前進(jìn)。
       DOM和SAX的例子以后會(huì)添加進(jìn)來(lái),所以這里就不寫(xiě)了。

    將所學(xué)到的知道用一張表聯(lián)系起來(lái),情看:

    學(xué)習(xí)筆記只是簡(jiǎn)單地?cái)⑹隽讼耎ML基本內(nèi)容有哪些技術(shù),至于想更深刻的理解XML。無(wú)它,多動(dòng)手。

    posted on 2005-08-22 20:33 瘋流成性 閱讀(486) 評(píng)論(0)  編輯  收藏 所屬分類: XML


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品第一国产综合精品99| 真人无码作爱免费视频| 丝袜捆绑调教视频免费区| 国产精品免费播放| 亚洲一区二区观看播放| 成年人免费的视频| 91亚洲国产成人久久精品| 亚洲一级免费毛片| 亚洲av极品无码专区在线观看| 青草草色A免费观看在线| 亚洲入口无毒网址你懂的| 91在线视频免费播放| 亚洲中文无码永久免| 免费国产a国产片高清| 免费夜色污私人影院网站电影 | 免费人成网站永久| 亚洲精品线路一在线观看| 黄视频在线观看免费| 久久夜色精品国产亚洲AV动态图| 九九全国免费视频| 亚洲免费观看视频| 57pao国产成视频免费播放| 亚洲а∨天堂久久精品9966| 在线观看成人免费视频| 精品国产亚洲一区二区三区在线观看| 婷婷综合缴情亚洲狠狠尤物| 成人无码视频97免费| 亚洲美女视频免费| 黄网址在线永久免费观看| 成人精品综合免费视频| 西西人体44rt高清亚洲| 中国在线观看免费高清完整版| 国产亚洲精品91| 亚洲高清在线播放| 美女视频黄的全免费视频网站| 无码天堂va亚洲va在线va| 亚洲精品乱码久久久久66| 日本免费网址大全在线观看| 日本一区二区三区免费高清在线| 久久精品国产亚洲AV香蕉| 国产精品成人无码免费|