




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
XML語言(可擴(kuò)展的標(biāo)記語言eXtensibleMarkupLanguage(可擴(kuò)展的標(biāo)記語言) TypeDefinition(DTD,文檔類型定義XML中的每個(gè)元素都是成對(duì)出現(xiàn)的(有開始,有結(jié)束),<student</student>,XML中的元素嵌套關(guān)系要保持正確性,即先開始每一個(gè)XML文檔都有且只有一個(gè)根元素(RootElement)XMLHTMLXML的注釋:comments--><?xml<!DOCTYPE<!ENTITYshengsiyuan圣思園<!ENTITYaddress"上地<關(guān)聯(lián)css樣式表:<?xml-stylesheettype="text/css"href="格式正規(guī)(wellformed)的XML文檔。符合XML語法要求的XML文檔就是格式正規(guī)的XML#PCDATA(ParsedCharacterData),參數(shù)實(shí)體是在dtd中定義,dtd中使用,定義的時(shí)候使用%,使用的時(shí)候也需要使用<!ENTITYaddressSYSTEM 表示使用 <!ENTITY%addressSYSTEM“http://w xml命名空間:XMLSchema是用一套預(yù)先規(guī)定的XML元素和屬性創(chuàng)建的,這些元素和屬性定義了XML文檔的結(jié)構(gòu)和內(nèi)容模式。XMLSchemaXML文檔實(shí)例的結(jié)構(gòu)和每個(gè)元素/屬性的數(shù)據(jù)類型。DTD–DTDXML語法(寫XML文檔實(shí)例時(shí)候用一種語法,寫DTD的時(shí)候用另外一種語法–DTD不支持命名空間(命名Schema的元素類型 ObjectModel(文檔對(duì)象模型)簡單工廠模式簡單工廠模式是類的創(chuàng)建模式,又叫做靜態(tài)工廠方法(StaticFactoryMethod)模式。簡單工廠模式是由一個(gè)工廠對(duì)象決定創(chuàng)工廠類(Creator)角色:擔(dān)任這個(gè)角色的是簡單工廠模式的,含有與應(yīng)用緊密相關(guān)的商業(yè)邏輯。工廠類在客戶端的直接調(diào)具體產(chǎn)品(ConcreteProduct)角色:簡單工廠模式所創(chuàng)建的任何對(duì)象都是這個(gè)角色的實(shí)例,具體產(chǎn)品角色由一個(gè)具體類實(shí) )代表的是XML文檔本身,是我們解析XML文檔的Dom解析實(shí)例<?xml <ADDRESS>10DowningStreet,London,<>(061)98765</< </</ <NAME>Bill<ADDRESS>WhiteHouse,<>(001)640098765</<FAX>(001)6400< </</Java類publicclasspublicstaticvoidmain(String[]args)throwsstep1:dom解析器工廠(工作的作用是用于創(chuàng)建具體的解析器BuilderFactorydbf=step2:domBuilderdb=dbf.new//step3:解析一個(gè)xml文檔,獲 對(duì)象(根結(jié)點(diǎn)=db.parse(newNodeListlist=.geementsByTagName("");for(inti=0;i<list.getLength();i++){Elementelement=System.out.println("name:"+content);System.out.println("address:"+content);
使用遞歸解析給定的任意一個(gè)xml文檔并且將其內(nèi)容輸出到命令行publicclasspublicstaticvoidmain(String[]args)throwsBuilderFactorydbf=BuilderFactory.newInstance();Builderdb=dbf.newBuilder();doc=db.parse(newFile("student.xml"));Elementroot=doc.get }privatestaticvoidparseElement(Elementelement){StringtagName=element.getNodeName();NodeListchildren=element.getChildNodes();System.out.print("<"+tagName);NamedNodeMapmapelement.getAttributes();//element元素的所有屬性所構(gòu)成的NamedNodeMapif(null!=map){ for(inti=0;i<map.getLength();i++){Attrattr //StringattrValue=attr.getValue();System.out.print(""+attrName+"=\""+attrValue+}}for(inti=0;i<children.getLength();i++){Nodenode=children.item(i);shortnodeType=node.getNodeType(); if(nodeType==Node.ELEMENT_NODE){ //}elseif(nodeType==System.out.print(node.getNodeValue());//}elseif(nodeType== Commentcomment=Stringdata=comment.getData(); }}System.out.print("</"+tagName+}}JAXP(JavaAPIforXMLParsing):用于XML解析的JavaAPISAX(SimpleAPIsforXML),面向XML的簡單APIs使用M解析XM時(shí),首先將XM文檔加載到內(nèi)存當(dāng)中,然后可以通過隨機(jī)的方式內(nèi)存中的O樹;SAX是基于而且是順序執(zhí)行的,一旦經(jīng)過了某個(gè)元素,我們就沒有辦法再去它了,SAX不必事先將整個(gè)XM文檔加載到內(nèi)存當(dāng)中,因此它占據(jù)內(nèi)存要比小,對(duì)于大型的XM文檔來說,通常會(huì)使用SAX而不是進(jìn)行解析。 5.方法鏈編程風(fēng)格(methodchainstyle)JDOM是一個(gè)開源項(xiàng)目,它基于樹型結(jié)構(gòu),利用純JAVA的技術(shù)對(duì)XML文檔實(shí)現(xiàn)解析、生成、序列化以及多種操JDOM是一XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集)獨(dú)特Java工具包它的設(shè)計(jì)包含Java語言的語法乃至語義JDOMFormatgetRawFormatXML數(shù)據(jù)的網(wǎng)絡(luò)傳輸,因?yàn)檫@種格式會(huì)去掉所有不必要的空白,因此例子publicclassJdomTest01publicstaticvoidmain(String[]args)throwsException=new();//得到對(duì)象ElementrootnewElement("root.addContent(rootCommentcommentnewComment("thisiscommentElementenewElement("學(xué)生e.setAttribute("學(xué)號(hào)","1").setAttribute("班級(jí)","110613方法鏈編程(返回對(duì)象本身)Elemente1=newElement("");e1.setText("都");//設(shè)置內(nèi)容Elemente2=newElement("");e2.setText("男");Elemente3=newElement("");e3.setText("22");e.addContent(e1).addContent(e2).addContent(e3);root.addContent(comment).addContent(e);Formatformat=Format.getPrettyFormat();//定義顯示格式 ");//設(shè)置縮進(jìn)format.setEncoding("gbk");//設(shè)置編碼格式XMLOutputterout=newXMLOutputter(format);//生成輸出對(duì)象out.output(,newFileWriter("jdom.xml"));//定義輸出文件,地址 <?xmlversion="1.0" <!--thisiscomment--<="1"班級(jí)
dom4j是一個(gè)Java的XMLAPI,類似于jdom,用來讀寫XML文件的。dom4j是一個(gè)十分優(yōu)秀的JavaXMLAPI,具有性能優(yōu)異、例子publicclassdom4jTest01publicstaticvoidmain(String[]args)throwsException=Helper.create();Elementroot=Helper.createElement("root");.add(root);root.addAttribute("student學(xué)生root.addElement("gyd").addAttribute("id","1").addText("都")root.addElement("dwd").addAttribute("id","2").addText("")OutputFormatformat=OutputFormat.createPrettyPrint();XMLWriterwr=newXMLWriter(newFileWriter("student1.xml"),format)wr.write()wr.close();//必須關(guān)閉或者使用flush()方法,因?yàn)橛芯彺?若不調(diào)用,生成的xml將為空白 使用Dom4jxml時(shí)候,則需要生成SAXReader類生成的對(duì)象domxml的底層接口之一(另一種是jdomdom4j則是基于api的更高級(jí)封dom是通用jdomdom4j則是面向java語言DOM是用與平臺(tái)和語言無關(guān)的方式表示XML文檔的W3C標(biāo)準(zhǔn)。DOM是以層次結(jié)構(gòu)組織的節(jié)點(diǎn)或信息片斷的集合。于它是基于信息層次的,因而DOM被認(rèn)為是基于樹或基于對(duì)象的。DOM以及廣義的基于樹的處理具有幾個(gè)優(yōu)點(diǎn)。首先,由像SAX那樣是的處理。DOM使用起來也要簡單得多。是用與平臺(tái)和語言無關(guān)的方式表示XM文檔的3標(biāo)準(zhǔn)。是以層次結(jié)構(gòu)組織的節(jié)點(diǎn)或信息片斷的集合。這個(gè)層次結(jié)信息層次的,因而被認(rèn)為是基于樹或基于對(duì)象的。以及廣義的基于樹的處理具有幾個(gè)優(yōu)點(diǎn)。首先,由于樹在內(nèi)存中是持久的,因此可以修改它以便應(yīng)用程序能對(duì)數(shù)據(jù)和結(jié)構(gòu)作出更改。它還可以在任何時(shí)候在樹中上下導(dǎo)航,而不是像AX使用起來也要簡單得多。選擇DOM還是選擇SAXXMLDOM還是SAX解析模型是一個(gè)非常重要的設(shè)計(jì)決策。DOM采用建立樹形結(jié)構(gòu)的方式XML文檔,而SAX采用的模型。解析器把XM文檔轉(zhuǎn)化為一個(gè)包含其內(nèi)容的樹,并可以對(duì)樹進(jìn)行遍歷。用調(diào)用建樹的指令,然后利用vitionAPIs所需的樹節(jié)點(diǎn)來完成任務(wù)??梢院苋菀椎奶砑雍托薷臉渲械脑?。然而由于使用解析器的時(shí)候需要處理整個(gè)XM文檔,所以對(duì)性能和內(nèi)存的要求比較高,尤其是遇到很大的XM文件的時(shí)候。由于它的遍歷能力,解析器常用于XM文檔需要頻繁的改變的服務(wù)中。AX解析器采了基于的模型,它在解析XML文檔的時(shí)候可以觸發(fā)一系列的,當(dāng)發(fā)現(xiàn)給定的ag的時(shí)候,它可以激活一個(gè)回調(diào)方法,告訴該方法制定的已經(jīng)找到。AX對(duì)內(nèi)的要求通常會(huì)比較低,因?yàn)樗岄_發(fā)人員自己來決定所要處理的ag.特別是當(dāng)開發(fā)人員只需要處理文檔中所包含的部分?jǐn)?shù)據(jù)時(shí),AX這種擴(kuò)展能力得到了更好的體現(xiàn)。但用AX較,而且很難同時(shí)同一個(gè)文檔中的多處不同數(shù)據(jù)。JDOMJDO的目的是成為Ja特定文檔模型,它簡化與XM的交互并且比使用O實(shí)現(xiàn)更快。由于是第一個(gè)Ja特定模型,一直得到大力推廣和促進(jìn)。正在考慮通過Ja規(guī)范請(qǐng)求JS-”將它最終用作Ja標(biāo)準(zhǔn)擴(kuò)展”。從年初就已經(jīng)開始了JDO開發(fā)。JDO與主要有兩方面不同。首先,JDO僅使用具體類而不使用接口。這在某些方面簡化了AP,但是也限制了靈活性。第二,API大量使用了ects類,簡化了那些已經(jīng)熟悉這些類的Ja開發(fā)者的使用。JDOM文檔其目的是“使用20%(或更少)的精力解決80%(或)Java/XML問題”(根據(jù)學(xué)習(xí)曲線假定為20%)。JDOM對(duì)于DOM4J雖然M4J代表了完全獨(dú)立的開發(fā)結(jié)果,但最初,它是JDO的一種智能分支。它合并了許多超出基本XM文檔表示的功能,包括集成的Xth支持、La支持以及于大文檔或流化文檔的基于的處理。它還提供了構(gòu)建文檔表示的選項(xiàng),它通過M4JAI和標(biāo)準(zhǔn)接口具有并行功能。從下半年開始,它就一直處于開發(fā)之中。在添加靈活性、Xth集成和
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重陽節(jié)養(yǎng)老策劃書(3篇)
- 六一幼兒園主題活動(dòng)策劃方案(10篇)
- 出納述職報(bào)告
- DB31∕701-2020 有色金屬鑄件單位產(chǎn)品能源消耗限額
- 車載消防知識(shí)培訓(xùn)課件
- 《出納理論與實(shí)務(wù)》課件-出納理論與實(shí)務(wù)(項(xiàng)目四)
- 國際商務(wù)合作談判技巧及風(fēng)險(xiǎn)應(yīng)對(duì)策略
- 品牌設(shè)計(jì)服務(wù)合同
- 項(xiàng)目實(shí)施時(shí)間線及工作計(jì)劃安排表
- 健康產(chǎn)業(yè)之智慧健康管理與服務(wù)模式研究報(bào)告
- GB/T 1345-2005水泥細(xì)度檢驗(yàn)方法篩析法
- 技術(shù)-tpu擠出加工注意事項(xiàng)
- 包扎(三角巾)課件
- 外科學(xué)第八版手外傷以及斷指再植
- 高校助學(xué)貸款結(jié)清憑證
- 產(chǎn)業(yè)園規(guī)劃建筑設(shè)計(jì)說明
- 內(nèi)蒙體育職院《體育傳播學(xué)》教案第1章 傳播與傳播學(xué)
- 瑪莎拉蒂路演執(zhí)行手冊(cè)升級(jí)版
- 《建筑工程資料管理規(guī)程》DB34T918-2019
- 小班數(shù)學(xué)掛燈籠教案反思
- 美術(shù)課件:水印版畫
評(píng)論
0/150
提交評(píng)論