国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java ModelI和ModelII DTD文件解析 DOM4J基礎應用

2019-11-06 06:55:44
字體:
來源:轉載
供稿:網友

1.Model I模式開發

    1.Model I模式開發Web應用時,分為兩種情況:

        1.純jsp技術方式開發        2.JSP+javaBean方式開發

    2.Model I模式的不足:

        1.JSP頁面中嵌入大量Java代碼,可讀性差。        2.大量代碼在JSP中難以復用。        3.后期維護及擴展的難度大。

2.Model II模式與MVC設計模式

    1.Model II模式體現了基于MVC的設計模式,簡單來說,Model II模式就是將數據顯示、流程控制和業務邏輯處理分離,使之相互獨立。

    

    2.MVC設計模式

        1.MVC設計模式由3個部分組成            Model:模型,主要用于數據和業務的處理。            View:視圖,用于數據的顯示。            Controller:控制器,用于進行流程控制。        2.MVC設計模式的特點            一個模型可以對應多個視圖。            顯示與邏輯控制的分離。            分層控制,減低了代碼間的偶合。            

3.DTD的概念和作用

    1.DTD簡介

        DTD是Document Type Definition的縮寫,即文檔類型的定義。        

    2.DTD的作用如下

        1.DTD使每個xml文件可以攜帶一個自身格式的描述。        2.DTD使不同組織的人可以使用一個通用DTD來交換數據。        3.DTD使應用程序可以使用一個標準DTD校驗從外部接收的XML數據是否有效。    

    3.DTD的聲明

        語法:            <!DOCTYPE 根元素 [定義內容]>                    示例:           
<?xml version="1.0"?>            <!DOCTYPE poem[                <!ELEMENT poem (author,title,content) >                <!ELEMENT author (#PCDATA) >                <!ELEMENT title (#PCDATA)  >                <!ELEMENT content (#PCDATA) >            ]>            <poem>                <author>王維</author>                <title>鹿踩</title>                <content>空山不見人,但聞人語聲。返景入深林,復照青苔上。</content>            </poem>                    將DTD嵌入XML文件中用于驗證描述詩集的XML,稱為內部DTD文檔。            

    4.使用外部DTD驗證XML

        存儲DTD的文件一般以.dtd作為文件的擴展名。        語法:            <!DOCTYPE 根元素 SYSTEM "DTD文件路徑">            DOCTYPE、SYSTEM是關鍵字。                        示例:         
  <?xml version="1.0" encoding="utf-8"?>            <!DOCTYPE poems SYSTEM "poems.dtd">            <poems createYear="2011">                <poem>                    <title>春曉</title>                    <author>孟浩然</author>                    <year>732</year>                    <content>春眠不覺曉.....</content>                </poem>            </poems>            

    5.DTD元素

        1.DTD元素定義語法:           
<!ELEMENT NAME CONTENT>                ELEMENT是關鍵字                NAME是元素名稱                CONTENT是元素類型        常用的元素類型如下:            #PCDATA,可以包含任何字符數據,但是不能在其中包含任何子元素,例如:            
<!ELEMENT title (#PCDATA)>            純元素類型,只包含子元素,并且這些子元素外沒有文本,例如:            
<!ELEMENT poems (poem*) >                    2.DTD元素中某些符號的用途        符號    用途                                                 示例                                                          示例說明        ()        用來給元素分組                               (古龍|金庸|梁羽生),(王朔|余杰),毛毛       表示分為三組        |        在列出的對象中選擇一個                  (男人|女人)                                              表示"男人"或者"女人"必須出現,并且兩者至少選一        ,        對象必須按指定的順序出現              (西瓜,蘋果,香蕉)                                      表示"西瓜""蘋果""香蕉"必須出現,并且按這個順序出現        *        該對象允許出現0到多次                   (愛好*)                                                     表示"愛好"可以出現0次到多次        ?        該對象可以出現0次到1次                (菜鳥?)                                                     表示"菜鳥"可以出現0次到1次        +        該對象最少出現1次到多次              (成員+)                                                     表示"成員"必須出現,而且可以出現多次        

    6.DTD屬性

        1.DTD屬性聲明語法如下:            <!ATTLIST 元素名稱 屬性名稱 屬性類型 屬性默認值>                2.DTD元素中屬性類型的描述如下:            屬性類型        說明            CDATA             表示字符數據            ID                表示唯一ID            IDREF            表示為另一個元素的id            IDREFS            表示其他id的列表            ENTITY            表示一個實體            ENTITLES        表示一個實體列表                3.DTD元素中屬性值的描述            值                說明            #REQUIRED        屬性值是必須的            #IMPLIED        屬性值不是必須的            #FIXED            屬性值是固定的            

4.XML文檔解析

    1.DOM4J概述

        DOM4J是一個易用的,開源的庫,可以實現對XML文檔的解析。    

    2.使用DOM4J操作XML數據

        1.Document對象相關         
  SAXReader reader = new SAXReader();            Document document = reader.read(new File("input.xml"));                    2.節點相關            1.獲取文檔的根元素                
Element rootElm = document.getRootElement();            2.取得某節點的單個子節點               
 Element memberElm = root.element("member");  //"member"是節點名            3.取得節點的文字               
 String text = memberElm.getText();            4.取得某節點下名為"member"的所有子節點并遍歷               
 List nodes = rootElm.elements("member");                for(Iterator it = nodes.iterator();it.hasNext();){                    Element elm = (Element)it.next();                }            5.對某節點下的所有子節點進行遍歷              
  for(Iterator it = root.elementIterator;it.hasNext();){                    Element element = (Element)it.next();                }            6.在某節點下添加子節點             
   Element ageElm = newMemberElm.addElement("age");            7.設置節點文字              
  ageElm.setText("29");            8.刪除某節點               
 parentElm.remove(childElm); //childElm是待刪除的節點,parentElm是其父節點。            9.添加一個CDATA節點                
Element contentElm = infoElm,addElement("content");                contentElm.addCDATA(diary.getContent());                contentElm.getText();  //特別說明:獲取街道的CDATA值與獲取節點的值是用一個方法                contentElm.clearContent();//清除節點中的內容,CDATA亦可        

        3.屬性相關

            1.取得某節點下的某屬性             
  Element root = document.getRootElement();                Attribute attribute = root.attribute("size"); //屬性名name            2.獲取屬性的文字             
   String text = attribute.getText();            3.遍歷某節點的所有屬性               
 Element root = document.getRootElement();                for(Iterator it = root.attributeIterator();it.hasNext()){                    Attribute attribute = (Attribute)it.next();                    String text = attribute.getText();                    System.out.PRintln(text);                }            4.設置某節點的屬性和文字               
 newMemberElm.addAttribute("name","sitinspring");            5.設置屬性的文字                
Attribute attribute = root.attribute("name");                attribute.setText("sitinspring");                                               
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乡县| 嘉鱼县| 汉寿县| 获嘉县| 股票| 丹江口市| 东源县| 吐鲁番市| 绥中县| 安多县| 竹溪县| 正安县| 海原县| 丹巴县| 双城市| 新源县| 万山特区| 鹤峰县| 荃湾区| 灵川县| 侯马市| 东兴市| 宁蒗| 黎平县| 林西县| 利川市| 通山县| 广饶县| 桐城市| 郧西县| 万载县| 双城市| 湾仔区| 云和县| 铁力市| 金沙县| 淮安市| 连云港市| 玉树县| 长丰县| 肥城市|