




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目一、XML基本語 XML介 XML元 XML屬 實(shí)體 DTD元 DTD元素:空元 DTD元素:含有 DTD元素:總 DTD中元素的屬 DTD命名空間介 二、Schema簡(jiǎn) Schema的作 Schema文件的擴(kuò)展名 三、Java解析 Java與XML共同 Java解析XML有兩種方 DOM解 SAX解 案例:使用DOM4J包的API解析xml文 案例:使用DOM4J包的API寫入xml文 四、XPath語 XPath基本介 使用XPath的好 XPath基本語 DOM4J對(duì)XPath的支 五、附db_info.xml文 一、XML基本語法XML介紹Language2)XML是獨(dú)立于軟件和硬件的信息傳輸工具。.xmlXML可以描繪樹狀結(jié)構(gòu)的數(shù)據(jù)。因?yàn)檫@個(gè)特點(diǎn),除了傳輸數(shù)據(jù)外,時(shí)候我們使XML作為配置文件。XML是一種標(biāo)記語言,很類似HTML立于1994年的組織,其是通過促進(jìn)通用協(xié)議的發(fā)展并確保其通用型,以激發(fā)web世界XML元素XML文檔包含XML例如:XML例如:XML文件內(nèi)容都是 XML屬性XML元素可以在開始中包含屬(即屬性是中定義的屬XML屬性的屬性值必須使用引號(hào),單引號(hào)‘’或雙引號(hào)“”都可以!如果屬性值本例如:例如:oracleuser="chang的'連接實(shí)體<>&;'"XML中有特殊含義的字CDATAxmlXML敏感的字符,而我們又不希望逐一的對(duì)CDATA段是最理想的。語法格式:CDATA[忽略檢查的文本]><script<scriptfunction }]]xmlxml文件格式xml文件要有相同的元素嵌套關(guān)系、相同的屬性定義、相同的元素順序、元素出如下為兩份相同數(shù)據(jù),但是結(jié)構(gòu)不同的xmlDTD元在一個(gè)DTD中,元素通過元素來進(jìn)行(用于和約束元素DTD元素語法<!ELEMENT元素名(元素內(nèi)容<!ELEMENTDTD元素:空元例如:<!ELEMENTpage例如:<!ELEMENTpageDTD元素:含有例如:<!ELEMENTpage例如:<!ELEMENTpage這時(shí)候page中只能出現(xiàn)文本內(nèi)容,但要注意,該文本內(nèi)容是需要檢查的,就是說不能出現(xiàn)XML敏感字符。[DTD元素:帶有子元素(子元素列表)的元語法:<!ELEMENT(1,例如:<!ELEMENTjdbc<!ELEMENToracle<!ELEMENTmysql 表示有一個(gè)叫jdbc的它其中只能包含兩個(gè)分別是oracle和mysql,例如:<!ELEMENTjdbc<!ELEMENToracle<!ELEMENTmysql注意事項(xiàng):jdbc中oracle和mysql的出現(xiàn)順序必須與jdbc的元素的順序一DTD元素:只出現(xiàn)一次的元語法:<!ELEMENT(子元素名稱例如:<!ELEMENTpage上 例如:<!ELEMENTpageDTD元素:可多次出現(xiàn)的元?0-*0-+1-例如:<!ELEMENTjdbc沒用量詞,則子元素必須出現(xiàn)且1次,且出現(xiàn)順序必須與的元素的順DTD元素:子元素只能是其中之一的情例如例如 <!ELEMENTman<!ELEMENTwoman對(duì)應(yīng) “” DTD元素:子元素可以是元素也可以是文例如 定 例如 DTD元素:總(en1|en2|值為唯一的值為另外一個(gè)元素的ID值為合法的XML值為合法的XML值是一個(gè)預(yù)定義的XMLDTD中元素的屬<oracle></oracle><!--<oracleuser="user"></oracle><!--例如:例如:<!ELEMENTpackage屬性類型en1en2…屬性值的約束DTD命名空間介紹(aeSpaceXL命名空間的目的是有效的區(qū)分來自不同DTDxml文件中使用<type>coffee二、Schema簡(jiǎn)介Schema的作用因?yàn)镈TD無法解決命名問題,所以出現(xiàn)了Schema,它是DTD的替代者。DTDSchemaXMLSchema:W3C一套用于約束XML元素的標(biāo)準(zhǔn),支持命名空間,和DTD的作用一致。DTD因?yàn)槎x語法相對(duì),且不是標(biāo)準(zhǔn)的XML形式去描述定義的。而Schema本Schema文件的擴(kuò)展名XMLSchemaDifinition(簡(jiǎn)稱XSDW3C標(biāo)準(zhǔn)三、JavaJavaXML共同點(diǎn)JavaXML的解析比其他語言更完善(JavaXML最好的語言。JavaXML有兩種方式1)DOM:文本對(duì)象模型(ObjectModel)2)SAXxmlAPI(SimpleAPIForXML)SAX進(jìn)行解析。例如androidSAXxml文件的工具的。AndroidPull解析。JDOM/DOM4J2種解析XMLAPIDOM解析XML是以樹狀結(jié)構(gòu)進(jìn)行解析的。DOM在解析XMLxml內(nèi)容解析Element(元素)描繪每個(gè)節(jié)點(diǎn)和嵌套關(guān)系,并載入內(nèi)存。xml文件在內(nèi)存中構(gòu)造樹型結(jié)構(gòu),可以遍歷和修改節(jié)點(diǎn),因?yàn)樗拦?jié)點(diǎn)SAX解析案例:使用DOM4J包的API解析xml文件我們使用DOM工具,來自DOM4JxmlDOM工具,還有一種JDOM,解析步驟:創(chuàng)建用于解析Xml文件的器第2步的方返回一個(gè)對(duì)象,描述整個(gè)文檔,通過該文檔對(duì)象獲取根step1DBinfo類,其中屬性有privateStringusername;//數(shù)據(jù)庫用戶名privateStringdbName;//數(shù)據(jù)庫連接名privateStringpassword;//數(shù)據(jù)庫privateStringattUser;//數(shù)據(jù)庫/**/**定義常量,用于描述當(dāng)前解析的XML中出現(xiàn)的 名*/privatestaticfinalStringELEMENT_JDBC="jdbc";privatestaticfinalStringELEMENT_ORACLE="oracle";privatestaticfinalStringELEMENT_MYSQL="mysql";privatestaticfinalStringELEMENT_URL="url";privatestaticfinalStringprivatestaticfinalStringELEMENT_USERNAME="username";privatestaticfinalStringELEMENT_PASSWORD="password";privatestaticfinalStringATTRIBUTE_USER="user";/**xmlToDBInfo:解析xml*/publicstaticList<DBInfo>xmlToDBInfo(InputStreaminput){/**InputStreaminput說明:因?yàn)槲覀円褂肈OMXML文件,那么一序中都是通過輸入流的形式的。*///1dom4j需要導(dǎo)包:dom4j-1.6.1.jarSAXReaderreader=newSAXReader();/**xmlfalsetrue ,驗(yàn)證DTD。//2; }catch(Exception thrownewRuntimeException("數(shù) //3/**root.getName()用于獲取當(dāng)前 的名字,這里應(yīng)該是jdbc*/Elementroot= //4/**root.elements();該方法獲取rootroot.elements(Stringname);*/List<Element>childList=root.elements();/**oraclemysqlDBInfo對(duì)象中,再將這些對(duì)象存入一個(gè)集合并返回,最終完成解析工作。*/List<DBInfo>infos=newArrayList<DBInfo>();for(Elementchild:childList){//將oracle或 DBInfo return privatestaticDBInfotoDBInfo(Elementelement){DBInfoinfo=newDBInfo();StringprivatestaticDBInfotoDBInfo(Elementelement){DBInfoinfo=newDBInfo();StringStringStringpassword=element.elementText(ELEMENT_PASSWORD); StringdbName=element.getName();//獲取當(dāng)前 return FileInputStreamFileInputStreamfis=new"day03"+File.separator+"part2"+File.separator+"db_info.xml");List<DBInfo>infos=XMLUtils.xmlToDBInfo(fis);for(DBInfoinfo:infos){ 案例:使用DOM4J包的API寫入xml文件xml/**XML*/publicstaticvoidwriteDBInfosToXml(OutputStream/**XML*/publicstaticvoidwriteDBInfosToXml(OutputStreamout,List<DBInfo>infos)throws//1 //2 的addElement(Stringname)方 該方法有返回值,返回值為添加的根標(biāo)記對(duì)象Element*/Element //3/**for(DBInfofor(DBInfoElement//4}writer.write(root);//XML}/**DBinfoElementpublic/**DBinfoElementpublicstaticElementtoDBInfoElement(DBInfo//1創(chuàng)建一個(gè)空的ELement對(duì)象,該對(duì)象僅代表oracle或 Element//2url、driverElement Element //3user="user"return FileInputStreamFileInputStreamfis=new"day03"+File.separator+"part2"+File.separator+"db_info.xml");List<DBInfo>infos=XMLUtils.xmlToDBInfo(fis);Filefile=newFile("out.xml"); FileOutputStreamfos=new兩個(gè)以字符串傳遞。還有一個(gè)比較常見的是protocolbuffer以字節(jié)傳遞四、XPath語言XPathXML中查找信息語言。XPathXML文檔中對(duì)元素和屬性XPath基本介紹XPath使用路徑表達(dá)式在XMLXPath是XSLTXPath是一個(gè)W3CXPath的好處DOMXPath,XPath基本語法XPath取所有的ID屬性。1,即獲
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南丁格爾精神作文
- 血清C反應(yīng)蛋白、降鈣素原及白細(xì)胞計(jì)數(shù)檢測(cè)對(duì)小兒支氣管炎病情及復(fù)發(fā)的評(píng)估價(jià)值
- 2024-2025學(xué)年新教材高中生物 第三章 遺傳的分子基礎(chǔ) 第四節(jié) 基因控制蛋白質(zhì)合成教學(xué)實(shí)錄(2)浙科版必修2
- DB3715-T 21-2022 日光溫室秋延遲番茄水肥一體化生產(chǎn)技術(shù)規(guī)程
- 2024年五年級(jí)英語下冊(cè) Unit 1 Going to Beijing Lesson 3 Who Is Singing教學(xué)實(shí)錄 冀教版(三起)
- 2023七年級(jí)數(shù)學(xué)下冊(cè) 第8章 一元一次方程8.2 解一元一次不等式1不等式的解集教學(xué)實(shí)錄 (新版)華東師大版
- 2024-2025學(xué)年高中政治 第四單元 發(fā)展社會(huì)主義市場(chǎng)經(jīng)濟(jì) 第十一課 第二框 積極參與國(guó)際經(jīng)濟(jì)競(jìng)爭(zhēng)與合作教學(xué)實(shí)錄 新人教版必修1
- 2023七年級(jí)語文下冊(cè) 第六單元 課外古詩詞誦讀配套教學(xué)實(shí)錄 新人教版
- 2024年五年級(jí)語文上冊(cè) 第一單元 4 珍珠鳥配套教學(xué)實(shí)錄 新人教版
- 17賽小車(教學(xué)設(shè)計(jì))-2023-2024學(xué)年科學(xué)三年級(jí)下冊(cè)人教鄂教版
- TCCIIP 001-2024 綠色低碳園區(qū)標(biāo)準(zhǔn)
- GB/T 20972.2-2025石油天然氣工業(yè)油氣開采中用于含硫化氫環(huán)境的材料第2部分:抗開裂碳鋼、低合金鋼和鑄鐵
- 美團(tuán)供應(yīng)鏈管理案例分析
- 2025廣東深圳證券交易所及其下屬單位信息技術(shù)專業(yè)人員招聘筆試參考題庫附帶答案詳解
- 陜西省西安市西咸新區(qū)2024年九年級(jí)下學(xué)期中考一模數(shù)學(xué)試題(含答案)
- 2025年內(nèi)蒙古烏蘭察布盟單招職業(yè)適應(yīng)性測(cè)試題庫新版
- 2025年宜春幼兒師范高等專科學(xué)校單招職業(yè)傾向性測(cè)試題庫含答案
- 《鈉離子電池產(chǎn)業(yè)發(fā)展白皮書》
- 全國(guó)交管12123駕駛證學(xué)法減分考試題附答案
- 2025中考作文預(yù)測(cè)
- 油氣田開發(fā)專業(yè)危害因素辨識(shí)與風(fēng)險(xiǎn)防控
評(píng)論
0/150
提交評(píng)論