JavaWeb:XML总结
JavaWeb:XML總結(jié)
?
目錄
JavaWeb:XML總結(jié)
一:什么是XML?
二:xml語(yǔ)法:
?? ??? ??? ?? ?三: xml約束:
四:XML解析思想:
一:什么是XML?
XML:eXtensible Markup Language 可擴(kuò)展標(biāo)記語(yǔ)言 version="1.0"
?? ?* 可擴(kuò)展:所有的標(biāo)簽都是自定義的。 ?
?? ?* 功能:數(shù)據(jù)存儲(chǔ)
?? ??? ?* 配置文件
?? ??? ?* 數(shù)據(jù)傳輸
?? ??? ?
?? ?* html與xml區(qū)別:
?? ??? ?* html語(yǔ)法松散,xml語(yǔ)法嚴(yán)格
?? ??? ?* html做頁(yè)面展示,xml做數(shù)據(jù)存儲(chǔ)
?? ??? ?* html所有標(biāo)簽都是預(yù)定義的,xml所有標(biāo)簽都是自定義的
?? ?
?? ?W3C:word wide web consortiem ?萬(wàn)維網(wǎng)聯(lián)盟
二:xml語(yǔ)法:
?? ??? ?* 文檔聲明:
?? ??? ??? ?* 必須寫在xml文檔的第一行。
?? ??? ??? ?* 寫法:<?xml version="1.0" ?>
?? ??? ??? ?* 屬性:?? ?
?? ??? ??? ??? ?* version:版本號(hào) 固定值 1.0
?? ??? ??? ??? ?* encoding:指定文檔的碼表。默認(rèn)值為 iso-8859-1
?? ??? ??? ??? ?* standalone:指定文檔是否獨(dú)立 ?yes 或 no
?? ??? ?* 元素:xml文檔中的標(biāo)簽
?? ??? ??? ?** 文檔中必須有且只能有一個(gè)根元素
?? ??? ??? ?* 元素需要正確閉合。<body></body> <br/>
?? ??? ??? ?* 元素需要正確嵌套
?? ??? ??? ?* 元素名稱要遵守:
?? ??? ??? ??? ?* 元素名稱區(qū)分大小寫
?? ??? ??? ??? ?* 數(shù)字不能開頭
?? ??? ?
?? ??? ?* 文本:
?? ??? ??? ?* 轉(zhuǎn)義字符:>
?? ??? ??? ?* CDATA: 里邊的數(shù)據(jù)會(huì)原樣顯示
?? ??? ??? ??? ?* ?<![CDATA[ 數(shù)據(jù)內(nèi)容 ]]>
?? ??? ??? ??? ?
?? ??? ?* 屬性:
?? ??? ??? ?* 屬性值必須用引號(hào)引起來(lái)。單雙引號(hào)都行
?? ??? ?* 注釋:
?? ??? ??? ?<!-- -->
?? ??? ?* 處理指令:現(xiàn)在基本不用
?? ??? ??? ?<?xml-stylesheet type="text/css" href="1.css"?>
?? ??? ??? ?
? ?三: xml約束:
?? ??? ?* 約束就是xml的書寫規(guī)則
?? ??? ?* 約束的分類:
?? ??? ??? ?dtd:
?? ??? ??? ??? ?dtd分類:
?? ??? ??? ??? ??? ?* 內(nèi)部dtd:在xml內(nèi)部定義dtd
?? ??? ??? ??? ??? ?* 外部dtd:在外部文件中定義dtd
?? ??? ??? ??? ??? ??? ?* 本地dtd文件:<!DOCTYPE students SYSTEM ?"student.dtd">
?? ??? ??? ??? ??? ??? ?* 網(wǎng)絡(luò)dtd文件:<!DOCTYPE students PUBLIC "名稱空間" ?"student.dtd">
?? ??? ??? ?schema:
?? ??? ??? ??? ?導(dǎo)入xsd約束文檔:
?? ??? ??? ??? ??? ??? ?1、編寫根標(biāo)簽
?? ??? ??? ??? ??? ??? ?2、引入實(shí)例名稱空間 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?? ??? ??? ??? ??? ??? ?3、引入名稱空間 xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"?? ?
?? ??? ??? ??? ??? ??? ?4、引入默認(rèn)的名稱空間
?
四:XML解析思想:
XML解析:
?? ?* 解析xml可以做:
?? ??? ?* 如果xml作為配置文件:讀取
?? ??? ?* 如果xml作為傳輸文件:寫,讀
?? ?* xml解析思想:
?? ??? ?* DOM:將文檔加載進(jìn)內(nèi)存,形成一顆dom樹(document對(duì)象),將文檔的各個(gè)組成部分封裝為一些對(duì)象。
?? ??? ??? ?* 優(yōu)點(diǎn):因?yàn)?#xff0c;在內(nèi)存中會(huì)形成dom樹,可以對(duì)dom樹進(jìn)行增刪改查。
?? ??? ??? ?* 缺點(diǎn):dom樹非常占內(nèi)存,解析速度慢。
?? ??? ?
?? ??? ??? ?Document
?? ??? ??? ?Element
?? ??? ??? ?Text
?? ??? ??? ?Attribute
?? ??? ??? ?Comment
?? ??? ?* SAX:逐行讀取,基于事件驅(qū)動(dòng)
?? ??? ??? ?* 優(yōu)點(diǎn):不占內(nèi)存,速度快
?? ??? ??? ?* 缺點(diǎn):只能讀取,不能回寫
?? ??? ?
?? ?* xml常用的解析器:
?? ??? ?* JAXP:sun公司提供的解析。支持dom和sax。
?? ??? ?* JDOM:
?? ??? ?* DOM4J:dom for java民間方式,但是是事實(shí)方式。非常好。 ?支持dom
?? ??? ??? ?1.導(dǎo)入jar包 dom4j.jar
?? ??? ??? ?2.創(chuàng)建解析器
?? ??? ??? ??? ?SAXReader reader = new SAXReader();
?? ??? ??? ?3.解析xml 獲得document對(duì)象?
?? ??? ??? ??? ?Document document = reader.read(url);?
?? ?* XPATH:專門用于查詢
?? ??? ??? ??? ?* 定義了一種規(guī)則。
?? ??? ??? ??? ?* 使用的方法:
?? ??? ??? ??? ??? ?* selectSingleNode():
?? ??? ??? ??? ??? ?* selectNodes():
?? ??? ??? ?使用步驟:
?? ??? ??? ??? ?1、注意:要導(dǎo)包 jaxen...jar
?? ??? ??? ??? ?2、創(chuàng)建解析器
?? ??? ??? ??? ??? ?SAXReader reader = new SAXReader();
?? ??? ??? ??? ?3、解析xml 獲得document對(duì)象?
?? ??? ??? ??? ??? ?Document document = reader.read(url);
?? ?
?? ?
?? ?* 解析XML:
?? ??? ?// 1、得到某個(gè)具體的節(jié)點(diǎn)內(nèi)容:第2本書的書名--》葵花寶典
?? ??? ?// 2、遍歷所有元素節(jié)點(diǎn)
?? ?XPath:
?? ??? ?//?? ?nodename 選取此節(jié)點(diǎn)。
?? ??? ?//?? ?/?? ? 從根節(jié)點(diǎn)選取。
?? ??? ?//?? ?//?? ? 從匹配選擇的當(dāng)前節(jié)點(diǎn)選擇文檔中的節(jié)點(diǎn),而不考慮它們的位置。
?? ??? ?//?? ?..?? ? 選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)。
?? ??? ?//?? ?@?? ? 選取屬性。
?? ??? ?// ? ? ?[@屬性名] ? ?屬性過(guò)濾
?? ??? ?// ? ? ?[標(biāo)簽名] ? ? 子元素過(guò)濾
?? ??? ?
?? ??? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ?
?? ??? ??? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ?
?? ??? ?
總結(jié)
以上是生活随笔為你收集整理的JavaWeb:XML总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端基础之BOM和DOM
- 下一篇: 总结出来的一些ASP.NET程序性能优化