XML學習筆記---初步探索XML

          Posted on 2007-09-13 11:17 久城 閱讀(1096) 評論(6)  編輯  收藏 所屬分類: XML

          知道XML已經很久了,最常見到它的地方莫過于web編程時見過的web.xml和struts中的struts-config.xml。但卻一直不了解它到底是做什么用地。有一點可以肯定,它的作用遠遠不止于此。

          這兩天比較閑,在網上看了一些關于XML的學習資料,第一次有這樣一個東西深深的吸引了我。

          研究它是因為想研究RSS,而RSS是目前最成功的XML應用。所以,才有的沖動去了解XML。

          記錄筆記如下:

          背景

          我對背景這個東西就跟讀新聞一樣,一廖而過。但了解一種技術或者一種語言的背景,有助于我們理解它的應用。先了解幾個概念:
          SGML(Standard Generalized Markup Language),標準通用標記語言。
          XML(eXtensible Markup Language),擴展標記語言。
          HTML(Hyper Text Mark-up Language ),超文本標記語言。

          早在Web未發明之前,SGML就已經存在了。但是SGML這種語言相當的龐大,學習起來很復雜(聽說的),我想,SGML中也應該是可以任意的定義各種標記,然后也有很多的DTD,對標記做不同的定義。那個年代,對于這種靈活性可能一般人都很難掌握吧(猜的哈哈),于是就誕生了HTML。

          我想HTML無非就是用SGML定義好每一種標記,包括DTD也是定義好的(HTML中好像沒有DTD,我想是已經定義好一種規范可以被瀏覽器識別了吧),通通不可以改變。這樣,由于HTML都是由一些固定的標記組成的,數量有限,所以學習起來非常的簡單,使用起來也非常方便。

          但是由于WEB的應用越來越廣泛,HTML的缺點也逐漸的顯現出來。它固定的標簽導致它在解決一些復雜問題的時候,很困難。介于這個弱點,于是就產生了XML,可擴展標記語言。和SGML相比,XML就是一個精簡的SGML??梢韵胂螅琗ML不局限于固定的標簽,完全可以由自己來設置標簽,再配合DTD文件對標簽進行定義規范。XML的功能要比HTML強大得多。這樣,隨著問題空間的變大,解決問題的空間也變大了嘿。

          XML與HTML比較

          HTML只是WEB通過瀏覽器顯示數據的通用方法,而XML提供了一個直接處理WEB數據的通用方法。HTML著重描述WEB數據的顯示格式,(想想那些標簽也基本上都是用于顯示格式的),而XML著重描述的是WEB頁面的內容。

          好像不是很好理解,我是這樣想的,HTML的標簽目的在于如何把數據用不同的格式顯示出來。比如同樣的一個字符串,我可以把它顯示成一個Label,一個Text,或者一個Link。而XML,目的在于把這個字符串的內容完整的顯示出來。

          當然,它也能做到把這個字符串顯示成各種格式。只需要結合一個XSL來描述。由XSL來定義XML中數據的顯示格式。這樣,使數據和表現形式完全的分離,這也許就是XML的魅力吧。

          XML的應用

          這是我最在意的地方。記錄下有待研究。
          參考網上的資料,有人這樣統計過:
          1. 應用于客戶需要與不同的數據源進行交互時。
          2. 應用于將大量運算負荷分布在客戶端,即客戶可根據自己的需求選擇和制作不同的應用程序以處理數據,而服務器只須發出同一個XML文件。
          3. 應用于將同一數據以不同的面貌展現給不同的用戶。
          4. 應用于網絡代理對所取得的信息進行編輯、增減以適應個人用戶的需要。

          另一個網絡資源的理解,同樣是這四個方面:
          1. 當網絡客戶必須在不同的數據庫之間傳遞信息時;
          2. 當需要把大部分從網絡服務器下載的數據在用戶端處理的時;(好像正是我需要的那個)
          3. 當相同的數據對于不同的用戶需要有不同的界面時;
          4. 當網絡情報供應商要把發現的信息精心裁剪并發送給不同的個人用戶時。


          簡單的XML文件
          <?xml version="1.0" encoding="gb2312"?>
          <blog>
          <name>java study</name>
          <author>Jiu Cheng</author>
          <url>http://www.aygfsteel.com/realsmy</url>
          </blog>
          version="1.0",說明這個文件遵循現在的xml1.0規范。

          XML文檔和HTML文檔相比,是結構良好的文檔。比如:
          1. 標簽必須成對。
          2. 一份文檔必須包含一個根元素。
          3. 所有的開始標簽和結束標簽必須匹配。
          4. 空標簽必須以“/>”結束。
          5. 標簽必須嵌套正確。
          6. 元素名稱大小寫敏感。
          7. 所有的屬性值必須位于單引號或雙引號中。
          8. 在同一個開始標簽或空標簽澡屬性不允許出現超過一次。
          以上這些是XML文檔必須遵循的,但是HTML瀏覽器卻可以接收結構不良好的HTML文檔。

          在HTML瀏覽器中格式化XML數據

          我想我說格式化大概不是很標準,暫時這樣理解。就我現在知道的,有兩種方法。一種是在HTML文件中調用XML中的數據利用HTML的顯示格式來顯示,一種是利用XSL文件來設置XML數據的樣式。
          1. 在HTML文件中調用XML數據
              也有兩種方法,一種是用腳本(script)調用。
          <HTML>
          <HEAD>
             
          <TITLE>test.html</TITLE>
             
          <script language="javaScript" for="window" event="onload">
              
          var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
              xmlDoc.load(
          "blog.xml");
              nodes
          =xmlDoc.documentElement.childNodes;
              name.innerText 
          = nodes.item(0).text;
              author.innerText 
          = nodes.item(1).text;
              url.innerText 
          = nodes.item(2).text;
             
          </script>
          </HEAD>
          <BODY>
             
          <b>BLOG NAME:</b><span id="name"></span><br>
             
          <b>AUTHOR:</b><span id="author"></span><br>
             
          <b>BLOG URL:</b><span id="url"></span><br>
          </BODY>
          </HTML>
              一種是引入XML文件。
          <HTML>
          <HEAD>
             
          <TITLE>test.html</TITLE>
          </HEAD>
          <BODY>
              
          <xml id="blog" src="blog.xml"></xml>
              
          <table border="0" datasrc="#blog">
                
          <tr>
                  
          <td>BLOG NAME:</td>
                  
          <td><span datafld="name"></span></td>
                
          </tr>
                
          <tr>
                  
          <td>AUTHOR:</td>
                  
          <td><span datafld="author"></span></td>
                
          </tr>      
                
          <tr>
                  
          <td>BLOG URL:</td>
                  
          <td><span datafld="url"></span></td>
                
          </tr>
              
          </table>
          </BODY>
          </HTML>

              blog.xml文件

          <?xml version="1.0" encoding="gb2312"?>
          <blog>
          <name>java study</name>
          <author>realsmy</author>
          <url>http://www.aygfsteel.com/realsmy</url>
          </blog>


          2. 利用XSL文件來設置XML的樣式
              blog.xml文件

          <?xml version="1.0" encoding="gb2312"?>
          <?xml-stylesheet type="text/xsl" href="blog.xsl" ?> 
          <blog>
          <name>java study</name>
          <author>realsmy</author>
          <url>http://www.aygfsteel.com/realsmy</url>
          </blog>

              blog.xsl文件

          <?xml version="1.0" encoding="GB2312"?>
          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
              
          <xsl:template match="/">
                  
          <xsl:for-each select="blog">
                      
          <xsl:value-of select="name"/><br/>
                      
          <xsl:value-of select="author"/><br/>
                      
          <xsl:value-of select="url"/><br/>
                  
          </xsl:for-each>
              
          </xsl:template>
          </xsl:stylesheet>


          這都是最簡單的了。
          xsl也是一個xml文檔。它有自己的語法,有待學習。

          關于xml的學習還在進行中。




          歡迎來訪!^.^!
          本BLOG僅用于個人學習交流!
          目的在于記錄個人成長.
          所有文字均屬于個人理解.
          如有錯誤,望多多指教!不勝感激!

          Feedback

          # re: XML學習筆記---初步探索XML  回復  更多評論   

          2007-09-13 11:31 by 千里冰封
          不錯,支持一下,XML是很強大的標記語言了

          # re: XML學習筆記---初步探索XML  回復  更多評論   

          2007-09-13 15:56 by laibin
          看完頂一下!

          # re: XML學習筆記---初步探索XML  回復  更多評論   

          2007-09-14 17:52 by 大頭菜
          很好的,很好的.

          # re: XML學習筆記---初步探索XML  回復  更多評論   

          2007-10-29 06:45 by mylove@foxmail.com
          筆記做的很好,一看就明白
          不過,以后配置文件可以完全不用XML寫。

          # re: XML學習筆記---初步探索XML  回復  更多評論   

          2007-11-17 20:32 by sonicss
          學習了,謝謝

          # re: XML學習筆記---初步探索XML  回復  更多評論   

          2008-02-02 17:53 by 煎蛋
          收益。謝謝。

          Copyright © 久城

          主站蜘蛛池模板: 齐河县| 桃园县| 兴文县| 渭源县| 永昌县| 自贡市| 厦门市| 博罗县| 娱乐| 偏关县| 通化市| 铁岭市| 乐东| 陆丰市| 铜陵市| 阿鲁科尔沁旗| 阿瓦提县| 嘉黎县| 辰溪县| 天津市| 鄂州市| 基隆市| 老河口市| 东平县| 白朗县| 高邮市| 西林县| 阿克苏市| 怀远县| 驻马店市| 额尔古纳市| 咸宁市| 盐源县| 贡嘎县| 万盛区| 名山县| 始兴县| 高要市| 河源市| 延寿县| 垣曲县|