第9講-文檔對象模型(DOM)-SN3005(XML09)_第1頁
第9講-文檔對象模型(DOM)-SN3005(XML09)_第2頁
第9講-文檔對象模型(DOM)-SN3005(XML09)_第3頁
第9講-文檔對象模型(DOM)-SN3005(XML09)_第4頁
第9講-文檔對象模型(DOM)-SN3005(XML09)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、使用使用XMLXML企業(yè)應用開發(fā)企業(yè)應用開發(fā)第四卷:第四卷: XML解析器文檔對象模型(DOM)軟件工程系 譚翔緯使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)2回顧q 了解XPath的概念q 描述上下文結點、定位路徑和軸 q 列出所有XPath函數(shù)以及它們的使用q 熟悉使用相關的XSLT元素使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)3目標q DOM是一組獨立于語言和平臺的應用程序編程接口,描述如何訪問和操縱存儲在結構化XML文檔中的信息q DOM可以表示樹狀結構q 了解W3C為DOM提供一系列API,以供應用程序調用q 掌握DOM API的核心接口q 對結點的操作包括讀取、添加、刪除、替換和創(chuàng)建,掌握用

2、java實現(xiàn)這些操作的方法使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)4DOM概述q簡單說,DOM是一組獨立于語言和平臺的應用程序編程接口,它能夠描述如何訪問和操縱存儲在XML和HTML文檔中的信息。qDOM的文檔結構 DOM文檔是由樹狀結構表示的。樹的每一個點都稱之為結點。使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)5示例DocumentElement:TeamsElement:TeamElement:TeamnameElement:CountryElement:MemberText:AC MilanText:ItalyAttr:AgeAttr:SexText:32Text:maleDOM文檔樹表示Te

3、xt:Pippo使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)6DOM工作方式XML文檔XML解析器文檔對象模型(樹狀結構視圖)應用程序將XML文檔一次性的裝入內存,對文檔進行解析根據(jù)文檔中定義的元素、屬性、注釋和處理指令等不同的內容進行分解,以結點樹的形式在內存中創(chuàng)建XML的表示DOM文檔中的每一個結點對應模型中一個對象,然后根據(jù)對象提供的編程接口,在Application中訪問、操作XML文檔使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)7DOM APINodeDocumentDocumentFragmentNodeListChracterDataElementDOMExceptionEntityDOMI

4、mplementationAttrEntityReferenceDocumentTypeCDATASectionNamedNodeMapTextProcessingInstructionNotation不同結點類型對應接口類型表示文檔根結點表示文檔類型聲明表示文檔片段表示可解析的文本內容使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)8DOM API接口q下面通過DOM的簡單應用,學習DOM 的主要核心接口 遍歷文檔 添加結點 刪除結點 替換結點使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)9應用:遍歷文檔使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)10代碼分析-1DocumentBuilderFactory fac

5、tory=DocumentBuilderFactory.newInstance();DocumentBuilder builder=factory.newDocumentBuilder();Document doc=builder.parse(args0);doc.normalize();Element root=doc.getDocumentElement();創(chuàng)建文檔對象生成工廠;實例化文檔對象;解析XML文檔;normalize()方法可以去掉XML文檔中作為格式化內容的空白而映射在DOM樹中不必要的Text Node對象;獲得文檔根元素結點Document接口使用使用XML企業(yè)應用開發(fā)

6、企業(yè)應用開發(fā)11代碼分析-2獲得元素子結點與屬性結點子結點的個數(shù)處理屬性結點遞歸處理子結點Node結點常量使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)12代碼分析NodeList children=element.getChildNodes();NamedNodeMap attr=element.getAttributes();int r=children.getLength();Node接口使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)13NodeList接口:我們可通過節(jié)點列表中的節(jié)點索引號來訪問列表中的節(jié)點(索引號由0開始)。 if(attr!=null)System.out.print(+eleme

7、nt.getNodeName();for(int j=0;j);else if(attr=null)System.out.println();代碼分析NamedNodeMap接口:用于表示可以通過名稱訪問的節(jié)點的集合使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)14代碼分析if(element.hasChildNodes()for(int k=0;kr;k+)if(children.item(k).getNodeType()=Node.ELEMENT_NODE)printNode(Element)children.item(k);else if(children.item(k).getNodeType

8、()=Node.TEXT_NODE)System.out.println(children.item(k).getNodeValue(); System.out.println();使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)實驗一:使用DOM遍歷編寫一個Java程序,將students.xml中的所有節(jié)點遍歷輸出。students.xml使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)參考代碼參考代碼:使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)17DOM應用:添加結點在元素Teams的子元素Team后添加一個新的Team元素。生成一個新的結點Team使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)18在根結點下添加新的T

9、eam結點該代碼作用:利用Transformer將處理的文檔信息通過XSLT轉換返回給源文檔。如果不加該段代碼,程序對信息的處理只表現(xiàn)在內存中,無法反映在XML文檔上。使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)19運行結果使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)20DOM應用:插入結點在現(xiàn)有Team元素之前插入新結點Team新結點Team使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)21代碼分析在原有Team元素前插入一個新的Team結點使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)22運行結果使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)23應用:刪除結點將上例中第一個Team元素的Member子元素的文本子節(jié)點刪除使用

10、使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)24運行結果使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)25DOM應用:刪除結點將上例中第一個Team結點刪除使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)26運行結果使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)27DOM應用:替換結點創(chuàng)建一個新的結點Member,替換原先的Member結點創(chuàng)建Member結點結點替換root.getFirstChild().replaceChild(newmember,oldmember);替換使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)28運行結果使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)實驗二使用DOM操作XML新建java程序,建立如下圖的ds.x

11、ml文檔參考代碼:使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)實驗二使用DOM操作XML在上例ds.xml文檔中開始部分添加一條學生記錄。參考代碼:思考(思考(1)如)如何刪除張三學何刪除張三學生的信息?(生的信息?(2)如何把李)如何把李四學生性別改四學生性別改為男?為男?使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)31DOM 特點-1 文檔對象模型 (Document Object Model, DOM):q是 XML 文檔的編程接口q定義如何在程序中訪問和操作 XML 文檔q是與平臺和語言無關的接口q以樹結構表示 XML 文檔q通過提供一組對象對 XML 文檔結構的訪問q定義用于訪問和操作 XML 文檔的 API使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)32DOM 特點-2文檔對象模型 DOMXML 文檔的編程接口定義如何在程序中訪問和操作 XML 文檔與平臺和語言無關的接口使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)33DOM 特點-3q 編寫一個通過 DOM 訪問 XML 文檔的應用程序時需要:qXML 解析器qDOM實現(xiàn)q 使用 DOM 創(chuàng)建和操作 XML 文檔有助于避免:q未封閉標簽q錯誤嵌套標簽q 使用 DOM 能夠在數(shù)據(jù)庫和 XML 文件之間輕松移動信息使用使用XML企業(yè)應用開發(fā)企業(yè)應用開發(fā)34總結qDOM 是用于 XML 文檔的與平

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論