下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、傳智播客一離級軟件人才實作培訓(xùn)專家!、www itcast cnjava解析xml四種方式DOM (Document Object Model,即文檔對彖模型)足 W3C 組織排薦的 處理XML 的杯準(zhǔn)接 Fl, DOM 采用建立樹形結(jié)構(gòu)的方式訪 fnJXML 文檔.SAX(Simple API for XML)不圧某個官方標(biāo)舐但它足 XML 社區(qū)爭實 I: 的標(biāo)準(zhǔn),兒乎所有的 XML 解析器都支持它.SAX 斛析器采用了阜珂 件的模型JDOM( jJDOMDOM 擴(kuò)展雖然名不*但兩占平行的關(guān)和是個開源項目它叢F樹醴給構(gòu).利用純JAVA的技術(shù)対XML 文檔實現(xiàn)解析、生成、序列化以及*種操作 J
2、DOM 的|的足成為 Java 待定文檔模空,它簡化與 XML 的交 4 并 1L 比使用 DOM 實現(xiàn)更快 DOM4J 性能優(yōu)爪 功能強人和極端易用使用的特點同時它也是 個開放源代碼的軟件如今你町以看到越來越鄉(xiāng)的 Java 軟件都在使 用 DOM4J 來 i 妒;XML.待別值紂 提的是連 Sun 的 JAXM(Java API , for XML Messaging )也在用 DOM4J.目前許女開源頂 II 中人址采用 DOM4J.例如人名柚刪的 Hibernate 也川 DOM4J來讀取 XML 配胃文件,/廠傳智播客一離級軟件人才實作培訓(xùn)專JR! www itcast cnV丿比京傳
3、村Ml*It Java技術(shù) +XML種左美的糾介Java 平臺是一種跨平臺的編程環(huán)境XML 是-種跨半臺的數(shù)據(jù)格式與其他 iftri+ll 比.Java 臺提供了更好的 XML 支持V_丿比必傳村14*駅廠傳智播客一離級軟件人才實作培訓(xùn)專JR! www itcast cnDOMDocument Object Model的縮勇通過樹型結(jié)構(gòu)存取XML文檔町以在樹的某個肖點上向前或向拆移動org.w3c.dom/V丿廠傳智1客一離級軟件人才實作培訓(xùn)專寰!、DOM示意C傳智ti客一離級秋件人才實作培訓(xùn)專宸!、DOM代碼例子k丿public static void mainSlnng| arg&
4、) 0教DocumcntBuWorFactory TI if WDocumentBuilderFaciory dbf-DocumentBuAJerFactory.neiv/nsfa/WieO:朮Nt此代岀卜戰(zhàn)的伙Fi W-SWiiLH dbt. set IgnonngCommenlsi true);dbf setlgnorlngEtementContencei truei.DocumentButkior db-null:Document document-null;try枚MdDocumcnlBuikler的實您ctxtf newDocumentBuikterO:File hie. new F
5、ite(-D:rtcastwork6pace xmWom .vsre xn .least xkxn students.xml*)document-db.parse(hle);V_丿C傳智ti客一髙級秋件人才實作培訓(xùn)專宸!、DOM代碼例子Mh d X稱的陌ElemerU的Model祺NodeLatnodeList-document oetE lenentsByTaaNameCname*);foriint i-O;i*(Node node nodeL om(i);Ift出你記的如System ouf prlntln(node getFirstChik( 9elNodeValue): catch (
6、ParserConhguratoonExceptlon e) e printSlacfcTraceO; catch (SAXException e) e pnntStackTraceO: catch (lOException e)e pnntSlacKTrace;try j.i; SAXParstr :SAXParscr saxParserspt. ncwS AX Parscrt):Ate Mcnew FHe( * D Vitcastwortcspace-vJcmlSaxsrlcn.rtca5r ax,tudents xmlM);尸祐文flnow XMl ContentHAJidlerO勿竹業(yè)
7、F片序/saxParser.parselfHe now XMLContentHandtefO);I catch (ParserConhguratioaExccpbon e e.printStackTrace(); catch (SAXExccption c.pnntStackTraceO:I catch (lOExcepbon e) e pcintStackTraceO;111_JIt i傳!VMr*It fl 傳智播客一離級軟件人才實作培訓(xùn)專宸!、www itcast cnSAX代碼例子public class XMLContentHandler extends DefaultHandler
8、private String currenfDaU.的 Kfl 兒倉 IdHpubtec 2d charactersfcharf ch inf start Int length) throwt SAXExcepbon (cixrenlDAta.new Smngch start length);Ipublic voM endDocumenti: throws SAXExcepbon (SyME out pnntfnr*;收 tH*);)A 斷口刖puMc void endEtecnemiStrng un. Stnng localNamo. String name) throws SAXEicep
9、tion (Sy3ten.oX.pmtlnC 1$ ,6 h *葉 currentDaU);System oiXpmtlnf*A4tA.4t.*.nam):廠傳智播客 _離級軟件人才實作培訓(xùn)專宸!、www itcast cnSAX代碼例子2_ 2_丿廠傳智播客一離級軟件人才實作培訓(xùn)專家!、SAX代碼例子V丿比衣傳金”析個文檔片曲public void startDocumeotO throws SAX Exception System otX printlnr )1妬Z尸門;IffMV兒UH的財Millpublic void startElenenl(StrlnQ url Siring loc
10、nJName, Siring name. Attntoutcs attnbutcs) throwsSAXExcoption (System.our pein(ln(M開 0 兀 RW J Node 15. II將 XML 轉(zhuǎn)換為 String3.DocumentHelper 艾常用 API: createDocument():J4t 個 Document 對彖parseText(String text):解析給疋 Xml 的文本 4 磺 Document 對猱V_丿傳智播客一離級軟件人才實作培訓(xùn)專宸!、D0M4J解析XML常用A PI*Element 類中常用到 API attributeVa
11、lue(String name):扶取尤柔 Siring 仇elementlterator():如呵兀索的所j F 兀戢(fjlteratorJi 代器 elementsQ :返佃尤水包吞所看/元案 Lisi. getParentf):獲収父幾Element aetPathO : ifeikHcififtxpath.oetachf):侑樂 C getNamen:伕取“點的匕軌selectNoaes(StringxpathExpression):通過 XPATH 獲取點selectSingleNodefString xpathExpression): jfiilXPATHfhlR 個點“ get
12、Document():作為個 DocumentJ!ilnLC傳智播客一離級軟件人才實作培訓(xùn)專賽!、D0M4J丿獲取文檔public static Document getDocument() SAXReader readerrnew SAXReader();File file=new FileCD:rtcastworkspacexmLDOM4Jsrccomitcastdaoimplstudents.xmr); Docume nt docume nt=null;try(document 二 reader.read(file); catch (DocumentException e) e.prin
13、tStackTraceO;return document;C傳智播客一離級軟件人才實作培訓(xùn)專賽!、DOM4Jpublic static void writeDocument2XMLFile(DocumGnt document File file=newFHeCD:ilcastworkspacexfnLDOM4JV,srcVmtcas!daoimplVstuden!s.xrnr);try OutputFormat forma! = Output Format. createPrettyPrint(); format.setEnc(xlingCGB23l 2);XMLWriter wrlterxn
14、ew XMLWrlter(new RleWHterffllelJormat); wnter.wrlte(document);writer, closef);)catch (lOException e)(e printStackTrace):C傳智播客一離級軟件人才實作培訓(xùn)專賽!、D0M4J丿廠傳智播客一離級牧件人才實作培訓(xùn)專宸!、www itcast cnD0M4J丿比京傳制也*敕“ LM sdeclAIIStudentO (Ust students(J8t new ArraytJ8t(): Documont document -DocumontMana9cr.gofDocunw?n) ):
15、Element roofEtetnent document getRoolElement( (|. List test rootEtement.etemcnts(): for (int - O J listStudent student new StuderM();Elcmc nt studcntElcmcnt (tst.gct(i); tranE)ementStudent(studentElement, student):studentsListaddstudent);)return sludentsbs:;Iprivate stalk void tranElementS1udent(Ele
16、ment etemeni. Sludentstudent)( studofTt_setW(eemont.attrtbui6Valu*); studcnt.selAddfcssotomcnt.ccfnentTextC,address*);廠傳智1客一離級牧件人才實作培訓(xùn)專宸!、www itcast cnDOM4J創(chuàng)建文檔public void createXmlDocument(Student student) Docume n( documemt 二 DocumentHelper.creafeDocumenf();Element rootElement = documemt.addElemen
17、tfstudenls?;Element studentElement工roolElement.addElementfistuden!l)addAttribute(Mid.student.getld();studentElement.addElementCnameH).adld=MV Id*If (node匚匚null) Element element (Etement) node;student = new StudentO;tranEfementStudenf(element. student):)return student;比京傳討Ml*ft仆傳智播客一離級軟件人才實作培訓(xùn)專宸!、DOM
18、4J通過屬性 name 査詢學(xué)生信息public Student lindStudentByName(String name) Student studentnull;Document documni DocufnentManagGrgerDocumen?0;Element rootElement document getRootElement():Node node = document.S9lectSingleNo(je(7students/studentnamG,* name ):if (node != null) Element elemenl (Elemenl) node;stude
19、nt = new Student(); tranElementStudent(elerrenl, student;return student;廠傳智客一髙級軟件人才實作培訓(xùn)專賽!、D0M4JC傳智Ml客一髙級軟件人才實作培訓(xùn)專寰!、D0M4Jpublic Li$t tmdStudentUkeName(Slrlng id)( List studentstist * new ArrayLst0:Document document DocumentManager getDocument); Element rootElement documentgetRooElement();List list
20、= document.selectNode3( (wstudents studcntconuins kf令門;If (1st I- null &hst.tlzeQ 0)( for (Int i 0; I list sizeO;4HNode node Bst.got(i);if (node nuHi Element element (Element) node; Student s(uden student new Sludent仆;tranEmentStudenf(eiBmerA. student); sludenteUst add($ludenOJ廠傳智客一髙級軟件人才實作培訓(xùn)專賽!
21、、return studenisLlst;傳智樁客一離級牧件人才實作培訓(xùn)專家!、D0M4JV丿北通過通過kl嵐性嵐性值見新節(jié)點值見新節(jié)點敬據(jù)敬據(jù)public vokl updatGStudentBylD(StudGnt student)(Document document = DocumentManager e/Documenl();Element rootElement - document.getRootElement(); Node node = document.seJeclStngleNodel*/students/student(id* student.gelld()4-if (n
22、ode ! null) Element element (Etemenl) node;element olementCname*)StText(student getNameQ):GleniGnt.elemGnt(*agG).sotText(studont.getAgeOKetement.elementCaddressM).setTex!(stixlent.getAddressO);DocumentManager.infeDooun)enf2XiWLFf/elocument);北JG(R傳智樁客一離級牧件人才實作培訓(xùn)專家!、DOM4J通通過過IDJM除一個元素除一個元素public void deleteStudentBylD(String id)(Document document = DocumGntManagGr.perDoct/men):Element rootEtemen!
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅省天水市清水縣多校聯(lián)考2025-2026學(xué)年高一上學(xué)期1月期末考試地理試卷(含答案)
- 2026屆高三生物二輪復(fù)習(xí)課件:選擇題強化練 4.遺傳的基本規(guī)律與伴性遺傳
- 化工企業(yè)冬季培訓(xùn)課件
- 鋼結(jié)構(gòu)綠色制造技術(shù)應(yīng)用
- 飛機結(jié)構(gòu)專業(yè)知識課件
- 2026安徽合肥工業(yè)大學(xué)管理學(xué)院管理學(xué)院醫(yī)療機器人與智慧醫(yī)療健康管理團(tuán)隊科研助理招聘3人備考考試試題及答案解析
- 2026新疆前海集團(tuán)有限責(zé)任公司招聘1人備考考試試題及答案解析
- 2026年上半年黑龍江事業(yè)單位聯(lián)考哈爾濱市招聘592人參考考試題庫及答案解析
- 2026江蘇蘇州人才發(fā)展有限公司招聘2人(一)備考考試題庫及答案解析
- 2026四川通發(fā)廣進(jìn)人力資源管理咨詢有限公司AI數(shù)據(jù)標(biāo)注員(第三批)招聘備考考試題庫及答案解析
- 中學(xué)生冬季防溺水主題安全教育宣傳活動
- 2026年藥廠安全生產(chǎn)知識培訓(xùn)試題(達(dá)標(biāo)題)
- 2026年陜西省森林資源管理局局屬企業(yè)公開招聘工作人員備考題庫及參考答案詳解1套
- 承包團(tuán)建燒烤合同范本
- 口腔種植牙科普
- 2025秋人教版七年級全一冊信息科技期末測試卷(三套)
- 搶工補償協(xié)議書
- 2026年廣東省佛山市高三語文聯(lián)合診斷性考試作文題及3篇范文:可以“重讀”甚至“重構(gòu)”這些過往
- 山東省青島市城陽區(qū)2024-2025學(xué)年九年級上學(xué)期語文期末試卷(含答案)
- 安全生產(chǎn)考試點管理制度(3篇)
- 孕婦尿液捐獻(xiàn)協(xié)議書
評論
0/150
提交評論