版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
知識要點.NET技術(shù)對XML的支持ASP.Net中實現(xiàn)對XML文檔的處理Java技術(shù)對XML的支持基于Java的DOM實現(xiàn)對XML文檔的處理基于Java的DOM4J實現(xiàn)對XML文檔的處理7.1.NET技術(shù)對XML的支持Microsoft.NETFramework簡介
Microsoft.NETFramework是構(gòu)成Microsoft.NET平臺的核心部分。由公共語言運行庫(CLR,CommonLanguageRuntime)和Framework類庫(FCL,FrameworkClassLibrary)兩個部分構(gòu)成。7.1.NET技術(shù)對XML的支持Microsoft.NETFramework對XML提供的支持
ADO.NET的對象模型是以XML為核心而設(shè)計的,它在System.Xml命名空間提供了豐富的XML支持。7.1.NET技術(shù)對XML的支持Microsoft.NETFramework對XML提供的支持
ADO.NET對XML文檔操作有:可從ADO.NET的數(shù)據(jù)集對象DataSet讀出XML格式的數(shù)據(jù),用于與其它分布式應(yīng)用程序間的數(shù)據(jù)傳送;可將XML數(shù)據(jù)填充到DataSet對象,用于界面顯示,或是更新數(shù)據(jù)庫;可從DataSet讀取具有XML架構(gòu)的XML格式數(shù)據(jù),使之可序列化到流或文件中;可從流或文件中將XML數(shù)據(jù)加載到文檔對象模型(DOM)對象中,而后填充到DataSet對象或是直接作為XML文檔,對數(shù)據(jù)進行處理。7.2ASP.NET中實現(xiàn)對XML文檔的操作在ASP.Net中實現(xiàn)XML文檔的讀寫方法寫XML方法WriteXML語法:WriteXml(目標(biāo)文件名,[寫入方式])寫入方式為XmlWriteMode(枚舉類型)。XmlWriteMode的枚舉值有DiffGram、IgnoreSchema、WriteSchema三個7.2ASP.NET中實現(xiàn)對XML文檔的操作在ASP.Net中實現(xiàn)XML文檔的讀寫方法讀XML方法ReadXML語法:ReadXml(目標(biāo)文件名)7.2ASP.NET中實現(xiàn)對XML文檔的操作綜合實例:使用ASP.Net和XML實現(xiàn)售書管理模塊問題
書店管理系統(tǒng)的售書管理,需要由工作人員從圖書列表中選擇客戶所需要的圖書,加入購物清單,對購物清單進行處理(修改數(shù)量、刪除訂單),產(chǎn)生本次銷售的銷售清單,生成相應(yīng)的XML格式文檔,本次銷售結(jié)束(結(jié)賬)還應(yīng)將此次銷售清單匯總到銷售單文檔中。7.2ASP.NET中實現(xiàn)對XML文檔的操作實現(xiàn)效果7.2ASP.NET中實現(xiàn)對XML文檔的操作分析設(shè)計售書管理模塊中的Web頁面根據(jù)售書業(yè)務(wù)流程設(shè)計程序確定所涉及的XML數(shù)據(jù)文檔關(guān)鍵問題之一:如何通過DataSet處理XML數(shù)據(jù)文檔關(guān)鍵問題之二:實現(xiàn)嵌套XML數(shù)據(jù)文檔的寫入方法關(guān)鍵問題之三:銷售單號如何自動生成完整實現(xiàn)代碼問題擴展:將數(shù)據(jù)集對象中的表轉(zhuǎn)換為指定格式或結(jié)構(gòu)的XML文檔7.2ASP.NET中實現(xiàn)對XML文檔的操作解決設(shè)計售書管理模塊中的Web頁面
售書模塊設(shè)計圖7.2ASP.NET中實現(xiàn)對XML文檔的操作根據(jù)售書業(yè)務(wù)流程設(shè)計程序7.2ASP.NET中實現(xiàn)對XML文檔的操作確定所涉及的XML數(shù)據(jù)文檔書籍信息文檔(BOOKLIB.xml)銷售單信息文檔(SELL.xml)員工信息文檔(EMPLOYEE.xml)書籍分類信息文檔(CATEGORIES.xml)7.2ASP.NET中實現(xiàn)對XML文檔的操作如何通過DataSet處理XML數(shù)據(jù)文檔.NETFramework提供了XmlDataDocument類與DataSet類的同步機制,即DataSet與XmlDataDocument使用同一組數(shù)據(jù),若DataSet對數(shù)據(jù)進行了更改,則更改會在XmlDataDocument對象中得到反映,反之亦然。7.2ASP.NET中實現(xiàn)對XML文檔的操作例如://創(chuàng)建XmlDataDocument對象XmlDataDocumentxmlDataDoc=newXmlDataDocument();DataSetds=newDataSet();//通過XmlDataDocument的ReadXml方法加載XML文檔xmlDataDoc.DataSet.ReadXml(Server.MapPath("source.xml"));//填充DataSetds=xmlDataDoc.DataSet;//對DataSet中的數(shù)據(jù)進行處理……//寫回XML文檔xdd.Save(Server.MapPath("shippers.xml"));7.2ASP.NET中實現(xiàn)對XML文檔的操作實現(xiàn)嵌套XML數(shù)據(jù)文檔的寫入方法
DataSet與XmlDataDocument同步機制中,提供了創(chuàng)建表關(guān)系DataRelation對象,設(shè)置其Nested屬性,即可以實現(xiàn)表關(guān)系中的子行嵌套在父列中。7.2ASP.NET中實現(xiàn)對XML文檔的操作實現(xiàn)嵌套XML數(shù)據(jù)文檔的寫入方法
實現(xiàn)步驟:創(chuàng)建SELL表和SELLDETAIL表結(jié)構(gòu)創(chuàng)建SELL表和SELLDETAIL表對象,將銷售圖書詳細信息存入SELLDETAIL表中,將銷售操作員編號、此筆銷售金額、銷售日期存入SELL表創(chuàng)建DataSet對象,用表SELL和SELLDETAIL填充,加入SELLID字段為關(guān)聯(lián)、Nested屬性為真的DataRelation對象寫入嵌套的XML文檔。7.2ASP.NET中實現(xiàn)對XML文檔的操作銷售單號如何自動生成利用DataSet與XmlDataDocument的同步機制,將銷售單XML數(shù)據(jù)讀入DataSet對象,從DataSet對象獲取最近一次銷售單號,并產(chǎn)生新的銷售單號完整代碼實現(xiàn)(略)7.2ASP.NET中實現(xiàn)對XML文檔的操作單元練習(xí)酒店管理系統(tǒng)網(wǎng)上訂房模塊,需要根據(jù)客戶的查詢條件進行客房信息查詢,查詢條件可以是單個條件(如客房類型),也可以是多條件(如客房價格、床位數(shù)量等)組合,若存在該客房,則顯示客房詳細信息,否則,顯示“暫無此類客房”的消息。
7.3Java技術(shù)對XML的支持Java解析XML文檔,有四種處理方法:基于樹節(jié)點文檔對象模型(DocumentObjectModule)的DOM基于事件驅(qū)動的XML簡單API(SimpleAPIforXML)的SAX專為Java設(shè)計基于樹節(jié)點的處理XML工具包JDOM(JavaDocumentObjectModel)基于面向接口處理xml文檔的DOM4J7.3Java技術(shù)對XML的支持DOMDOM是一種與平臺、語言無關(guān)的,處理XML文檔的官方W3C標(biāo)準(zhǔn)。DOM將XML文檔視為具有層次結(jié)構(gòu)的節(jié)點樹,DOM中的每一項均為特殊形態(tài)的節(jié)點對于任何節(jié)點都可以進行搜索、增加、修改或刪除處理處理前,需要分析并構(gòu)造樹,并加載整個XML文檔到內(nèi)存中,將占用較大的內(nèi)存空間,從而造成程序處理速度緩慢。7.3Java技術(shù)對XML的支持SAX由XML-dev的郵件列表所發(fā)展而來的基本思想:當(dāng)一個XML元素分析完,就調(diào)用相應(yīng)的事件處理方法進行處理,即邊解析邊處理,一旦滿足某個特定條件,還可以停止解析工作。SAX的處理方式類似于流媒體,不需要將整個XML文檔加載至內(nèi)存,對于大型文檔來說將極大地提高處理效率7.3Java技術(shù)對XML的支持JDOM第一個專為Java程序員設(shè)計的處理XMLAPI,不支持如DOM嚴(yán)格的樹形結(jié)構(gòu),簡化了與XML的交互通過JDOM提供的方法,獲取節(jié)點集的集合形態(tài),可以直接對元素進行操作7.3Java技術(shù)對XML的支持DOM4J由
出品的一個開源XML解析包,與JDOM類似,應(yīng)用于Java平臺處理XML、XPath和XSLT基于面向接口的JavaXMLAPI具有性能優(yōu)異、功能強大和使用簡單的特點7.3Java技術(shù)對XML的支持四種方法的比較DOM4J性能最好,但選擇具體使用哪種可視情況而定要求高性能,且不考慮移植,可采用DOM4J。希望編程簡單,移植性好,且文檔不是很大,可選用DOM文檔大,可選用SAX7.4Java技術(shù)實現(xiàn)對XML文檔的操作利用JAXP進行DOM編程處理XML文檔DOM的5個基本對象:Document、Node、NodeList、Element和Attr 7.4Java技術(shù)實現(xiàn)對XML文檔的操作利用JAXP進行DOM編程處理XML文檔Document對象 方法 描述getDocumentElement()返回DOM樹的根元素對象createElement(String)創(chuàng)建指定元素名的Element對象createAttribute(String)創(chuàng)建指定屬性名的Attr對象getElementsByTagName(String)返回一個NodeList對象,包含指定元素的所有子元素CreateTextNode(text)創(chuàng)建具有指定文本的Text對象7.4Java技術(shù)實現(xiàn)對XML文檔的操作利用JAXP進行DOM編程處理XML文檔Node對象 方法 描述appendChild(Node)添加一個子節(jié)點,若已存在該節(jié)點,則刪除后重新添加getFirstChild()如果節(jié)點存在子節(jié)點,則返回第一個子節(jié)點getNextSibling()返回在DOM樹中這個節(jié)點的下一個兄弟節(jié)點getElementsByTagName(String)返回一個NodeList對象,包含指定元素的所有子元素CreateTextNode(text)創(chuàng)建具有指定文本的Text對象getNodeName()根據(jù)節(jié)點的類型返回節(jié)點的名稱getNodeValue()返回節(jié)點的值getNodeType()返回節(jié)點的類型hasChildNodes()判斷是不是存在有子節(jié)點removeChild(Node)刪除給定的子節(jié)點對象replaceChild(NodenewNode,NodeoldNode)用一個新的Node對象代替給定的子節(jié)點對象7.4Java技術(shù)實現(xiàn)對XML文檔的操作利用JAXP進行DOM編程處理XML文檔NodeList對象 方法 描述GetLength()返回列表的長度Item(int)返回指定位置的Node對象7.4Java技術(shù)實現(xiàn)對XML文檔的操作利用JAXP進行DOM編程處理XML文檔Element對象Attr對象:代表了某個元素對象的屬性,附屬于Element對象 方法 描述getElementsByTagName(String)返回一個NodeList對象,包含指定元素的所有子元素getTagName()返回一個代表這個標(biāo)簽名字的字符串getAttribute(String)返回元素的指定屬性的值7.4Java技術(shù)實現(xiàn)對XML文檔的操作實例:利用DOM實現(xiàn)對圖書信息XML文檔的讀和寫
問題
書店管理系統(tǒng)的圖書庫存管理,工作人員可以對庫存圖書進行圖書查詢,以及增/刪圖書。庫存圖書XML文檔BOOKLIB.xml。7.4Java技術(shù)實現(xiàn)對XML文檔的操作取出的圖書列表實現(xiàn)效果增加圖書的效果刪除圖書效果7.4Java技術(shù)實現(xiàn)對XML文檔的操作分析解析XML文檔獲取節(jié)點集,得到圖書列表操作DOM中的節(jié)點,讀取、增加以及刪除圖書信息寫入XML文檔主要實現(xiàn)代碼7.4Java技術(shù)實現(xiàn)對XML文檔的操作解決解析XML文檔步驟使用DocumentBuilderFacotry類的靜態(tài)方法newInstance()創(chuàng)建一個解析器工廠,該方法根據(jù)一個系統(tǒng)變量來決定具體使用哪一個解析器通過其靜態(tài)方法newDocumentBuilder()方法創(chuàng)建一個DocumentBuilder對象解析XML文檔7.4Java技術(shù)實現(xiàn)對XML文檔的操作獲取節(jié)點集,得到圖書列表的過程通過DOM對象的getDocumentElement(),獲取DOM樹的根節(jié)點使用方法getElementsByTagName(String),得到NodeList節(jié)點集對象7.4Java技術(shù)實現(xiàn)對XML文檔的操作操作DOM中的節(jié)點,讀取、增加以及刪除圖書信息讀取圖書信息NodeList.item(i)得到指定序號的Node對象利用getElementsByTagName(String)、getAttribute(String)、getTagName()訪問該標(biāo)簽元素的文本、屬性值、標(biāo)簽名稱等信息。7.4Java技術(shù)實現(xiàn)對XML文檔的操作操作DOM中的節(jié)點,讀取、增加以及刪除圖書信息增加新圖書使用DOM的createElement(String)方法創(chuàng)建新元素使用Element對象的setAttribute(String,String)方法可為元素設(shè)置新屬性。刪除圖書doc.getDocumentElement().removeChild(指定節(jié)點元素);說明:先獲得欲刪除的結(jié)點,而后移去該節(jié)點7.4Java技術(shù)實現(xiàn)對XML文檔的操作寫入XML文檔過程使用TransformerFactory的靜態(tài)方法newInstance(),創(chuàng)建一個轉(zhuǎn)換器工廠對象通過轉(zhuǎn)換器工廠對象得到Transformer對象,代表一個特定的轉(zhuǎn)換器對象。調(diào)用Transformer類的transfrom(Source,Result)方法,實現(xiàn)輸出DOM到輸出流對象。兩個參數(shù)說明:數(shù)據(jù)源Source——DOM源對象,輸出對象Result——輸出流StreamResult類對象7.4Java技術(shù)實現(xiàn)對XML文檔的操作單元練習(xí)酒店管理系統(tǒng)入住資料管理,需要實現(xiàn)對入住信息的添加、修改處理,對于已結(jié)帳的客人,其入住信息的刪除,同時與入住相關(guān)的客房信息也需要隨之更新狀態(tài)。7.4Java技術(shù)實現(xiàn)對XML文檔的操作DOM4J處理XML文檔的基本思想:將DOM樹的節(jié)點集返回到一個集合,遍歷DOM樹。DOM4J包含的接口接口 描述Node定義dom4j中所有XML節(jié)點的多態(tài)行為Attribute定義XML的屬性Branch為包含子節(jié)點的節(jié)點(如Element、Docuemnts)定義一個公共的行為Document定義XML的文檔Element定義XML的元素CharacterData用于標(biāo)識基于字符的節(jié)點,如CDATA、Comment、TextCDATA定義XML的CDATA區(qū)域Comment定義XML注釋的行為ElementHandler定義Element對象的處理器Text定義XML文本節(jié)點DocumentType定義XMLDOCTYPE聲明XPath分析字符串,并提供XPath表達式Visitor用于實現(xiàn)Visitor模式7.4Java技術(shù)實現(xiàn)對XML文檔的操作DOM4J的常用對象:Document(文檔)Element(元素)Node(節(jié)點)Attribute(屬性)Text(文本)7.4Java技術(shù)實現(xiàn)對XML文檔的操作Document(文檔)方法 描述getRootElement()返回根節(jié)點setRootElement(Element)設(shè)置根節(jié)點getXMLEncoding()返回編碼格式setXMLEncoding(String)設(shè)置編碼格式setDocType(DocumentType)設(shè)置Document的類型addComment(String)添加注釋節(jié)點addElement(Stringname)添加一個指定名字的元素節(jié)點,并返回該元素selectNodes(String)利用XPath返回指定名的節(jié)點集selectSingleNode(String)利用XPath返回指定名的節(jié)點Element(元素)方法 描述getName()返回元素節(jié)點的本地名稱,但若為CDATA、Text節(jié)點返回為nullgetText()返回元素的文本內(nèi)容,如果內(nèi)容為空,則返回一個空字符串a(chǎn)ttributeIterator()返回元素屬性的iterator,其中每個元素都是Attribute對象attribute(String
name)返回元素的指定名稱屬性節(jié)點attributeValue(String)為元素的某個指定屬性的值addElement(Stringname)添加一個指定名字的元素節(jié)點,并返回該元素addAttribute(Stringname,Stringvalue)為元素添加一個指定名及值的屬性element(String)返回指定名稱的第一個子元素elementText(String)返回指定元素的文本內(nèi)容elementIterator(String)返回包含元素所有子元素的枚舉對象(Iterator)remove(Attribute
attribute)刪除元素的指定屬性節(jié)點setAttributeValue(Stringname,Stringvalue)為元素的指定屬性設(shè)置屬性值getParent()返回元素的父元素getPath()返回元素的XPath表達式,其中父元素名和子元素名之間使用"/"分隔isTextOnly()是否該元素只含有text或是空元素isRootElement()是否該元素是XML樹的根節(jié)點selectNodes(String)利用XPath返回指定名的節(jié)點集selectSingleNode利用XPath返回指定名的節(jié)點7.4Java技術(shù)實現(xiàn)對XML文檔的操作Node(節(jié)點)方法 描述getName()返回節(jié)點的名稱getPath()返回節(jié)點的XPath路徑getText()獲得節(jié)點的文本內(nèi)容setText()設(shè)置節(jié)點的文本內(nèi)容selectNodes(String)利用XPath返回指定名的節(jié)點集selectSingleNode(String)利用XPath返回指定名的節(jié)點7.4Java技術(shù)實現(xiàn)對XML文檔的操作綜合實例:使用Java和DOM4J實現(xiàn)售書功能模塊問題
書店管理系統(tǒng)的售書功能,由工作人員從圖書列表中選擇客戶所需要的圖書,對購物清單進行處理(修改數(shù)量、刪除訂單),產(chǎn)生本次銷售的銷售清單,并保存到XML格式的銷售信息文檔。7.4Java技術(shù)實現(xiàn)對XML文檔的操作實現(xiàn)效果圖書信息列表銷售清單銷售匯總信息7.4Java技術(shù)實現(xiàn)對XML文檔的操作分析根據(jù)售書業(yè)務(wù)流程設(shè)計程序確定所涉及的XML數(shù)據(jù)文檔關(guān)鍵問題之一:如何解析XML文檔,獲取圖書列表關(guān)鍵問題之二:如何創(chuàng)建DOM對象,以產(chǎn)生本次銷售清單關(guān)鍵問題之三:如何實現(xiàn)寫入XML文檔,保存銷售清單完整實現(xiàn)代碼問題擴展:高效率訪問DOM對象的機制7.4Java技術(shù)實現(xiàn)對XML文檔的操作解決根據(jù)售書業(yè)務(wù)流程設(shè)計程序售書管理模塊的方法:方法 描述addItemToCart(Stringsellid,Stringempid,Dateselldate,ShopBookDetailitembook)產(chǎn)生銷售清單并保存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海洋潛標(biāo)系統(tǒng)合作協(xié)議書
- 2024-2025學(xué)年海南省定安縣四年級(上)期末數(shù)學(xué)試卷
- 2022年國家開放大學(xué)電大《心理學(xué)》過關(guān)練習(xí)試題A卷-含答案
- 建筑地基處理技術(shù)規(guī)范考試試題及答案
- 2025年人教版四年級數(shù)學(xué)下冊教學(xué)工作總結(jié)(四篇)
- 2025年二年級語文組工作總結(jié)范文(二篇)
- 2025年中央空調(diào)安裝工程承包合同(2篇)
- 2025年二年級下學(xué)期班主任工作計劃總結(jié)(2篇)
- 2025年二年級語文教師教學(xué)總結(jié)(三篇)
- 2025年二手房屋裝修合同(五篇)
- 《配電網(wǎng)設(shè)施可靠性評價指標(biāo)導(dǎo)則》
- 2024年國家電網(wǎng)招聘之通信類題庫附參考答案(考試直接用)
- CJJ 169-2012城鎮(zhèn)道路路面設(shè)計規(guī)范
- 食品企業(yè)日管控周排查月調(diào)度記錄及其報告格式參考
- 產(chǎn)品質(zhì)量法解讀課件1
- 第八單元金屬和金屬材料單元復(fù)習(xí)題-2023-2024學(xué)年九年級化學(xué)人教版下冊
- 倉庫搬遷及改進方案課件
- 精神科護理技能5.3出走行為的防范與護理
- 采購管理學(xué)教學(xué)課件
- 《供應(yīng)商質(zhì)量會議》課件
- 江蘇省科技企業(yè)孵化器孵化能力評價研究的中期報告
評論
0/150
提交評論