從這一篇可是進入JavaEE的學習中崔慧,se實在沒啥好寫的,等我深入開發(fā)后理解透徹再寫吧取胎〗僦希考試夠用了
1 XML入門
1.1 引入
- HTML: 負責網(wǎng)頁的結(jié)構(gòu)
- CSS: 負責網(wǎng)頁的樣式(美觀)
- Javascript: 負責在瀏覽器端與用戶進行交互。
負責靜態(tài)的網(wǎng)頁制作的語言
HTML語言特點:
1)由標簽組成提岔。
2)語法結(jié)構(gòu)松散的仙蛉、大小寫不區(qū)分、結(jié)束標簽和開始標簽不一定匹配
這種自定義標簽可以把他們叫做xml標簽碱蒙。
1.2 HTML和XML的區(qū)別
HTML XML
名稱: HyperText Markup Languae(超文本標記語言) Extend Markup Languge(可擴展標簽語言)
標簽: 標簽是w3c組成指定荠瘪,固定的,約100來個 標簽由開發(fā)者自己制定的(要按照一定的語法定 義)
作用: 負責網(wǎng)頁的結(jié)構(gòu) 1)描述帶關(guān)系的數(shù)據(jù)(作為軟件的配置文件): 包 含與被包含的關(guān)系
properties文件: key-value
name=xulei
password=123456
<user>
<name>xulei</name>
<password>123456</password>
</user>
場景:
tomcat
1)struts Hibernate spring (三大框架)
2)作為數(shù)據(jù)的載體(存儲數(shù)據(jù)赛惩,小型的“數(shù)據(jù)庫”)
2 XML作用
-
2.1 描述帶關(guān)系的數(shù)據(jù)(軟件的配置文件)
web服務(wù)器(PC):
學生管理系統(tǒng) -> 添加學生功能 -> 添加學生頁面 ->name=eric&email=xulei@qq.com前提: 網(wǎng)絡(luò)(IP地址: oracle:255.43.12.54 端口:1521 )
java代碼:使用ip(255.43.12.54)地址和端口(1521)哀墓,連接oracle數(shù)據(jù)庫,保存學生數(shù)據(jù)喷兼。// 把ip地址端口配置到xml文件:
host.xml
<host>
<ip>255.43.12.55</ip>
<port>1521</port>
</host>
數(shù)據(jù)庫服務(wù)器(PC):
主服務(wù)器(255.43.12.54):Oracle數(shù)據(jù)庫軟件(負載)
副服務(wù)器(255.43.12.55):Oracle數(shù)據(jù)庫軟件
-
2.2 數(shù)據(jù)的載體(小型的“數(shù)據(jù)庫”)
教師管理系統(tǒng): 姓名 工齡+1 郵箱發(fā)教師數(shù)據(jù)給財務(wù)管理系統(tǒng): String teacher = name=張三&email=zhangsan@qq.com&workage=2 字符串 (問題: 1)不好解析 2)不是規(guī)范) teacher.xml <teacher> <name>張三</name> <email>zhangsan@qq.com</email> <workage>2</workage> </teacher> 這種一種規(guī)范 財務(wù)管理系統(tǒng): 姓名 工齡+1 郵箱 發(fā)獎金: 統(tǒng)計獎金篮绰。 工齡 發(fā)郵件功能: 郵箱 姓名 金額 方案一: 在財務(wù)管理系統(tǒng)中維護了一套教師信息。 每年 : 工齡增加 維護了兩個系統(tǒng)的信息季惯。 方案二: 教師信息只在教學管理系統(tǒng)中維護吠各。
3 XML語法
*xml文件以xml后綴名結(jié)尾。*
*xml文件需要使用xml解析器去解析勉抓。瀏覽器內(nèi)置了xml解析器贾漏。*
-
3.1 標簽
語法: <student></student> 開始標簽 標簽體內(nèi)容 結(jié)束標簽
1)<student/> 或 <student></student> 空標簽。沒有標簽體內(nèi)容
2)xml標簽名稱區(qū)分大小寫藕筋。
3)xml標簽一定要正確配對纵散。
4)xml標簽名中間不能使用空格
5)xml標簽名不能以數(shù)字開頭
6)注意: 在一個xml文檔中,有且僅有一個根標簽
3.2 屬性
語法: <Student name="eric">student</Student>
注意:
1)屬性值必須以引號包含隐圾,不能省略伍掀,也不能單雙引號混用!t岢小硕盹!
2)一個標簽內(nèi)可以有多個屬性,但不能出現(xiàn)重復的屬性名_犊А4窭!
3.3 注釋
語言:練習: 通訊錄系統(tǒng) 聯(lián)系人數(shù)據(jù):編號 (唯一的) 姓名 年齡 電話 郵箱 QQ 要求: contact.xml 1)設(shè)計一個xml文件甸各,用于存儲聯(lián)系人數(shù)據(jù) 2)這個xml文件可以多個聯(lián)系人垛贤。 3.4 文檔聲明 語法: <?xml version="1.0" encoding="utf-8"?> version: xml的版本號 encoding: 解析xml文件時查詢的碼表(解碼過程時查詢的碼表) 注意: 1)如果在ecplise工具中開發(fā)xml文件,保存xml文件時自動按照文檔聲明的encoding來保存文 件趣倾。 2)如果用記事本工具修改xml文件聘惦,注意保存xml文件按照文檔聲明的encoding的碼表來保存。 3.5 轉(zhuǎn)義字符 在xml中內(nèi)置了一些特殊字符儒恋,這些特殊字符不能直接被瀏覽器原樣輸出善绎。如果希望把這些特殊字符按照原樣輸出到瀏覽器黔漂,對這些特殊字符進行轉(zhuǎn)義。轉(zhuǎn)義之后的字符就叫轉(zhuǎn)義字節(jié)禀酱。 特殊字符 轉(zhuǎn)義字符 < < > > " " & & 空格 &nsbp; 3.6 CDATA塊 作用: 可以讓一些需要進行包含特殊字符的內(nèi)容統(tǒng)一進行原樣輸出炬守。 3.7 處理指令 作用: 告訴xml解析如果解析xml文檔 案例: <?xml-stylesheet type="text/css" href="1.css"?> 告訴xml解析該xml文檔引用了哪個css文件 需要提前xml內(nèi)容可以使用xml-stylesheet指令指令
4 XML解析
4.1 引入
xml文件除了給開發(fā)者看,更多的情況使用程序讀取xml文件的內(nèi)容剂跟。這叫做xml解析4.2 XML解析方式(原理不同)
DOM解析
SAX解析-
4.3 XML解析工具
DOM解析原理:
1)JAXP (oracle-Sun公司官方)
2)JDOM工具(非官方)
3)Dom4J工具(非官方)
三大框架(默認讀取xml的工具就是Dom4j)
.......SAX解析原理:
1)Sax解析工具(oracle-sun公司官方) 4.4 什么是DOM解析
DOM解析原理:xml解析器一次性把整個xml文檔加載進內(nèi)存减途,然后在內(nèi)存中構(gòu)建一顆Document的對象樹,通過Document對象曹洽,得到樹上的節(jié)點對象鳍置,通過節(jié)點對象訪問(操作)到xml文檔的內(nèi)容。4.5 Dom4j工具
非官方送淆,不在jdk中税产。
使用步驟:
1)導入dom4j的核心包。 dom4j-1.6.1.jar
2)編寫Dom4j讀取xml文件代碼-
4.6 Domj4讀取xml文件
節(jié)點:
Iterator Element.nodeIterator(); //獲取當前標簽節(jié)點下的所有子節(jié)點標簽: Element Document.getRootElement(); //獲取xml文檔的根標簽 Element ELement.element("標簽名") //指定名稱的第一個子標簽 Iterator<Element> Element.elementIterator("標簽名");// 指定名稱的所有子標簽 List<Element> Element.elements(); //獲取所有子標簽 屬性: String Element.attributeValue("屬性名") //獲取指定名稱的屬性值 Attribute Element.attribute("屬性名")坊夫;//獲取指定名稱的屬性對象 Attribute.getName() //獲取屬性名稱 Attibute.getValue() //獲取屬性值 List<Attribute> Element.attributes(); //獲取所有屬性對象 Iterator<Attribute> Element.attibuteIterator(); //獲取所有屬性對象 文本: Element.getText(); //獲取當前標簽的文本 Element.elementText("標簽名") //獲取當前標簽的指定名稱的子標簽的文本內(nèi)容 練習: 把上午寫的聯(lián)系人的xml文件內(nèi)容砖第,使用dom4j完整地讀取并打印出來。
總結(jié):
1)XML的作用
配置文件(最常見)
作為數(shù)據(jù)庫
2)XML語法
3)XML解析(DOM解析)
3.1 DOM解析原理
3.2 Dom4j工具(基于DOM解析)
讀然吩洹:
節(jié)點
標簽節(jié)點
屬性節(jié)點
文本節(jié)點