




已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
XML介紹 XML eXtensibleMarkupLanguage 可擴(kuò)展的標(biāo)記語言可擴(kuò)展 相對(duì)HTML 超文本標(biāo)記語言 編輯網(wǎng)頁文件時(shí) 網(wǎng)頁文件中使用的HTML標(biāo)簽都是預(yù)先規(guī)定好的 不能根據(jù)自己意愿添加規(guī)定外的標(biāo)簽 而如果編輯一個(gè)XML文件 可以根據(jù)自己意愿定義標(biāo)簽來完成 比如 胡澤旺男 什么是XML 可擴(kuò)展性是XML最主要的特點(diǎn)XML是一種元標(biāo)記語言 它只表示數(shù)據(jù)本身 沒有顯示的樣式 和HTML比較 HTML不僅表示數(shù)據(jù)而且還有顯示的樣式真正的數(shù)據(jù)和顯示分離基于這樣的特點(diǎn) XML主要用來交換數(shù)據(jù)用交換雙方都可以明白的標(biāo)簽來封裝數(shù)據(jù)比如WebServices 就是在不同平臺(tái)和不同語言之間交換數(shù)據(jù)寫配置文件 XML特點(diǎn)和運(yùn)用 JavaApps NotNetApps XML Java超級(jí)編程比爾蓋茨 XML文檔構(gòu)成 XML聲明 文檔類型聲明 文檔元素 一個(gè)XML文檔就是擴(kuò)展名為 xml的文本文件 XML文檔 XML聲明 XML聲明一般是XML文檔的第一行XML聲明由以下幾個(gè)部分組成 version 文檔符合XML1 0規(guī)范 現(xiàn)在只有1 0encoding 文檔字符編碼 默認(rèn)為 UTF 8 standalone 文檔定義是否在一個(gè)文件內(nèi)standalone yes standalone no 返回 每個(gè)XML文檔必須有且只有一個(gè)根元素 根元素是一個(gè)完全包括文檔中其他所有元素的元素 根元素的起始標(biāo)記要放在所有其他元素的起始標(biāo)記之前 根元素的結(jié)束標(biāo)記要放在所有其他元素的結(jié)束標(biāo)記之后 XML文檔 根元素 XML文檔 元素 YIKEJI LTD 元素TITLE 開始標(biāo)記 結(jié)束標(biāo)記 內(nèi)容 空元素TITLE 空元素TITLE XML文檔 屬性 TOM屬性值用雙引號(hào) 或單引號(hào) 分隔 如果屬性值中有 用 分隔 有 用 分隔 一個(gè)元素可以有多個(gè)屬性 它的基本格式為 特定的屬性名稱在同一個(gè)元素標(biāo)記中只能出現(xiàn)一次屬性值不能包括 實(shí)體 作用 避免重復(fù)輸入 宏 變量 XML中五個(gè)預(yù)定義實(shí)體自定義實(shí)體語法 引用已定義的實(shí)體 XML專用標(biāo)記 1 注釋 注釋內(nèi)容中不要出現(xiàn) 不要把注釋放在標(biāo)記中間 TOM注釋不能嵌套 可以在除標(biāo)記以外的任何地方放注釋 不能位XML文檔的第一行 用于把整段文本解釋為純字符數(shù)據(jù)而不是標(biāo)記的情況 包含大量 或者 字符 CDATA CharacterData 節(jié)中的所有字符都會(huì)被當(dāng)作元素字符數(shù)據(jù)的常量部分 而不是XML標(biāo)記 語法 XML專用標(biāo)記 2 CDATA節(jié) 文檔類型聲明 緊跟XML聲明之后 包含所有實(shí)體聲明語法 文檔類型定義 DOCTYPE 遵循如下規(guī)則的XML文檔稱為格式良好的XML文檔 語法規(guī)范必須有XML聲明語句必須有且僅有一個(gè)根元素標(biāo)記大小寫敏感屬性值用引號(hào)標(biāo)記成對(duì)空標(biāo)記關(guān)閉元素正確嵌套 格式良好的XML文檔 元素語法名稱中可以包含字母 數(shù)字或者其它字符名稱不能以數(shù)字和 下劃線 開頭不能以XML xml Xml 開頭名稱中不能含空格名稱中不能含冒號(hào) 注 冒號(hào)留給命名空間使用 格式良好的XML文檔 續(xù) DTD DocumentTypeDefinition 文檔類型定義DTD用來驗(yàn)證XML文檔的結(jié)構(gòu)是否合法DTD定義XML文檔中可以出現(xiàn)的元素元素的關(guān)系元素可用的屬性定義實(shí)體DTD文件的擴(kuò)展名 dtd DTD 有了DTD 每個(gè)XML文件可以攜帶一個(gè)自身格式的描述 有了DTD 不同組織的人可以使用一個(gè)通用DTD用來交換數(shù)據(jù) 應(yīng)用程序可以使用一個(gè)標(biāo)準(zhǔn)DTD校驗(yàn)從外部世界接受來的XML數(shù)據(jù)是否有效可以使用DTD校驗(yàn)自己的XML數(shù)據(jù) 為什么需要DTD DTD文檔的聲明及引用內(nèi)部DTD文檔外部DTD文檔內(nèi)外部DTD文檔結(jié)合 如何生成一個(gè)DTD文檔 1 4 王維鹿柴空山不見人 但聞人語聲 返景入深林 復(fù)照青苔上 如何生成一個(gè)DTD文檔 2 4 注意 例中的定義關(guān)鍵字一定要大寫 如DOCTYPE ELEMENT PCDATA 且元素名稱與數(shù)據(jù)類型之間也要有空格 PCDATA ParsiableCharacterData 能夠被解析的數(shù)據(jù) 如何生成一個(gè)DTD文檔 3 4 王維鹿柴空山不見人 但聞人語聲 返景入深林 復(fù)照青苔上 外部DTD示例 如何生成一個(gè)DTD文檔 4 4 王維鹿柴空山不見人 但聞人語聲 返景入深林 復(fù)照青苔上 內(nèi)部和外部DTD示例 語法 元素的定義 1 5 關(guān)鍵字 元素名稱 EMPTY 該元素不能包含子元素和文本 但可以有屬性 空元素 ANY 該元素可以包含任何在DTD中定義的元素內(nèi)容 PCDATA 可以包含任何字符數(shù)據(jù) 但是不能在其中包含任何子元素純?cè)仡愋?只包含子元素 并且這些子元素外沒有文本混合類型 包含子元素和文本數(shù)據(jù)的混合體 元素類型 EMPTY示例 空元素皮諾曹皮諾曹爸爸 元素的定義 2 5 ANY示例皮諾曹皮諾曹爸爸將根元素設(shè)為ANY類型后 元素出現(xiàn)的次數(shù)和順序不受限制 元素的定義 3 5 PCDATA示例皮諾曹皮諾曹爸爸 元素的定義 4 5 組合類型示例 元素的定義 5 5 修飾符號(hào) 語法 屬性的定義 CDATAIDIDREF IDREFSEnumerated REQUIRED IMPLIED FIXEDvalueDefaultvalue 屬性值可以是任何字符 包括數(shù)字和中文 屬性類型 CDATA 表明該屬性的取值必須是唯一的 屬性類型 ID ID屬性值必須是合格的XML名字 事先定義好一些值 屬性的值必須在所列出的值的范圍內(nèi) 屬性類型 Enumerated ENITITY類型的屬性的值必須對(duì)應(yīng)一個(gè)在DTD文檔內(nèi)聲明的實(shí)體 通常用來處理外部的二進(jìn)制數(shù)據(jù)文件 如圖形 音效等ENTITIES類型的屬性的值與ENITITIE類似 不同的是可以包含多個(gè)由空格分開的實(shí)體 屬性類型ENTITY ENTITIES A001 元素的所有實(shí)例都必須有該屬性的值 NOTNULL 語法 DTD示例 XML示例 屬性的特點(diǎn) REQUIRED 元素的實(shí)例中可以忽略該屬性 NULL 語法 DTD示例 XML示例 屬性的特點(diǎn) IMPLIED 元素實(shí)例中該屬性的值必須為指定的固定值 語法 DTD示例 XML示例 屬性的特點(diǎn) FIXEDvalue 為屬性提供一個(gè)默認(rèn)的值語法 DTD示例 XML示例 屬性的特點(diǎn) Defaultvalue 語法 DTD示例 XML示例 定義實(shí)體 內(nèi)部實(shí)體 分析完整的DTD文檔 寫XML實(shí)例 張三男20李四女19王二男21 分析XML實(shí)例 寫DTD文檔 為什么要使用命名空間避免元素名沖突什么是命名空間使用URL作為XML的Namespaces命名空間的語法定義 xmlns prefix URL 元素和屬性都可以應(yīng)用命名空間 命名空間 Namespace XML的元素名是不固定的 當(dāng)兩個(gè)不同的文檔使用同樣的名稱描述兩個(gè)不同類型的元素的時(shí)候 就會(huì)發(fā)生命名沖突 命名沖突 ApplesBananas 使用前綴解決命名沖突問題 AfricanCoffeeTable80120 ApplesBananas 使用命名空間屬性 AfricanCoffeeTable80120 Java解析XML的方式DOM解析標(biāo)準(zhǔn)由W3C定義 Java有實(shí)現(xiàn) JAXP DOM方式是把整個(gè)XML文件在內(nèi)存里生成一顆樹 樹的節(jié)點(diǎn)就是XML文件的元素由于DOM方式需要在內(nèi)存里完整的加載和生成一顆樹 如果XML過大 效率相對(duì)較低SAX解析SAX處理的優(yōu)點(diǎn)非常類似于流媒體的優(yōu)點(diǎn) 分析能夠立即開始 而不是等待所有的數(shù)據(jù)被處理 而且 由于應(yīng)用程序只是在讀取數(shù)據(jù)時(shí)檢查數(shù)據(jù) 因此不需要將數(shù)據(jù)存儲(chǔ)在內(nèi)存中 這對(duì)于XML文件過大時(shí)是有好處的 解析XML JDOM解析JDOM是一個(gè)開源項(xiàng)目 http www jdom org 它基于樹型結(jié)構(gòu) 利用純JAVA的技術(shù)對(duì)XML文檔實(shí)現(xiàn)解析 生成 序列化以及多種操作 JDOM直接為JAVA編程服務(wù) 它利用更為強(qiáng)有力的JAVA語言的諸多特性 方法重載 集合概念以及映射 把SAX和DOM的功能有效地結(jié)合起來DOM4J解析DOM4J 最開始是JDOM的一個(gè)分支 也是一款優(yōu)秀的JAXP 使用起來非常簡單 解析XML dom4j主要API介紹Document接口 表示一個(gè)XML文檔ElementgetRootElement 返回一個(gè)XML文檔的根元素voidsetRootElement 為一個(gè)XML文檔設(shè)置根元素StringgetXMLEncoding 返回一個(gè)XML文檔的字符編碼的字符串voidsetXMLEncoding 設(shè)置一個(gè)XML文檔的字符編碼Element接口 表示XML文檔的一個(gè)元素add Attributeattr 為指定的元素添加屬性addAttribute Stringname Stringvalue add Texttext 為指定的元素添加文本內(nèi)容addText Stringtext add Elementelement 為指定的元素添加子元素addElement Stringname Stringvalue DOM4J解析XML Element接口remove Attributeattri 從指定的元素移出指定的屬性節(jié)點(diǎn)remove Texttext 從指定的元素移出指定的文本節(jié)點(diǎn)remove Elementelement 從指定的元素移出指定的子元素Attributeattribute Stringname 返回指定屬性名的Attribute對(duì)象StringattributeValue Stringname 返回指定屬性的值Listattributes 返回指定元素所有屬性的集合IteratorattributeIterator 返回指定元素所有屬性的迭代器StringgetText 返回指定元素的文本內(nèi)容Listelements 返回指定元素的所有子元素的集合IteratorelementIterator 返回指定元素的所有子元素的迭代器Attribute接口 表示一個(gè)元素的屬性節(jié)點(diǎn)StringgetValue 返回屬性的值voidsetValue Stringvalue 為屬性設(shè)置值 dom4j主要API介紹 Text 表示一個(gè)元素的文本節(jié)點(diǎn)stringgetText 返回文本節(jié)點(diǎn)的文本內(nèi)容voidsetText Stringvalue 為文本節(jié)點(diǎn)賦值Branch 為XML文檔中的所有節(jié)點(diǎn)定義的公共行為 繼承自NodeAttribute Text Element Document都繼承自BranchNode 表示一個(gè)XML的節(jié)點(diǎn) 包括屬性節(jié)點(diǎn) 文本節(jié)點(diǎn)等StringgetName 返回節(jié)點(diǎn)的名字voidsetName Stringname 設(shè)置節(jié)點(diǎn)的名字Branch繼承自Node dom4j主要API介紹 dom4j主要API介紹 節(jié)點(diǎn)類圖 DocumentHelper dom4j中經(jīng)常使用的工具類staticDocumentcreateDocument 創(chuàng)建一個(gè)XML文檔staticDocumentcreateDocument ElementrootElement 用指定的根元素創(chuàng)建一個(gè)XML文檔staticElementcreateElement Stringname 用指定的名字創(chuàng)建一個(gè)元素對(duì)象OutputFormat 表示一個(gè)XML文檔輸出的格式staticOutputFormatcreateCompactFormat 得到一個(gè)緊湊式的格式staticOutputFomatcreatePrettyPrint 得到一個(gè)格式良好的格式voidsetEncoding Stringencoding 設(shè)置輸出的編碼XMLWriter XML的輸出流 用于輸出XMLwrite Documentdoc 將Document表示的XML文檔輸出SAXReader 創(chuàng)建一個(gè)從SAX的解析中得到的DOM4J樹Documentread Filefile 返回給定XML文檔的Document對(duì)象Documentread InputStreamin dom4j主要API介紹 工具類 第一步在內(nèi)存生成一個(gè)XML文檔的DocumentDocumentdoc DocumentHelper createDocument Elementroot doc addElement persons Elementperson root addElement person addAttribute id 512323 person addElement name setText 張三 person addElement gender setText 男 第二步將第一步生成的Document輸出到文件Filefile newFile src com hzw javaweb ch01 dom4j persons xml OutputFormatformat OutputFormat createPrettyPrint format setEncoding GBK XMLWriterwriter newXMLWriter newFileOutputStream file format XMLWri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年湖南省茶陵三中新高考物理試題適應(yīng)性訓(xùn)練(二)含解析
- 酒泉職業(yè)技術(shù)學(xué)院《數(shù)學(xué)解題方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 鶴壁汽車工程職業(yè)學(xué)院《第二外語德語》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南工學(xué)院《程序設(shè)計(jì)基礎(chǔ)理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 畢節(jié)工業(yè)職業(yè)技術(shù)學(xué)院《裝飾設(shè)計(jì)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 揚(yáng)州大學(xué)《現(xiàn)代分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 古人對(duì)時(shí)間的總結(jié)
- 公司投資的基本理念及方法論
- 公共交通車輛性能檢測制度
- 公共交通車輛調(diào)度管理制度
- 《大數(shù)據(jù)分析與應(yīng)用》教學(xué)大綱
- FZW2812F(FDR)型用戶分界真空負(fù)荷開關(guān)安裝使用說明書完
- 股權(quán)轉(zhuǎn)讓委托書(6篇)
- 氣管支氣管結(jié)核診斷和治療指南
- 韓國出入境卡中韓文對(duì)照模板
- 五輥研磨機(jī)(課堂PPT)
- 二次函數(shù)求最值(動(dòng)軸定區(qū)間、動(dòng)區(qū)間定軸)(課堂PPT)
- 髖關(guān)節(jié)脫位2教學(xué)課件
- 耳式支座計(jì)算
- IMS基本信令流程課件
- 酒精擦拭試驗(yàn)
評(píng)論
0/150
提交評(píng)論