傳智播客-XML解析(精)_第1頁
傳智播客-XML解析(精)_第2頁
免費預(yù)覽已結(jié)束,剩余18頁可下載查看

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論