日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

XML;
是什么?
Extensible Markup Languare 可擴展標記型語言
為什么要有XML?
1.html的標簽是固定的,不可以改變,也不可以進行一個···擴展
2.HTML語法松散
作用;
制作配置文件;如組件類。。。。。
存儲數據;存儲少量的數據
◆◆◆注;XML不是HTML的升級版,因為應用的領域不一樣。
XML是描寫關系型的數據
HTML是描述頁面的數據顯示效果

--------------------------------------------XML和HTML的區別--------------------------------------------------------------------
XML和HTML的區別;
A、HTML是將數據和顯示的效果混合在一起,描述了數據的顯示效果,
-----而且標簽是固定,而且語法松散
B、XML是將數據和顯示的效果是分離的,只是描述了數據之間的關系和存儲的格式,
-----沒有描述數據的顯示效果,沒有一套具體的標簽,只是一個規范。
XML適用金融,科學等有關系型的領域
XML的重點是;處理數據,和數據結構


◆注;引入外部css文件,對XML標簽進行一個修飾,
<>xml-stylesheet tyep = "text/css" href = "">

--------------------------------------------XML的特點--------------------------------------------------------------------
XML特點;
1.語法嚴謹,區分大小寫
2.標簽名可以是中文
3.文件后綴是 .xml
4.換行也是算一個元素
5.可以自定義標簽
6.id不可以以數字開頭
存儲數據的方式;
* XML 存儲關系型的數據
* properties 存儲key,value的數據
* 文本 什么都可以存儲
* 數據庫

 


--------------------------------------------XML的語法--------------------------------------------------------------------

 

XML語法;
1.文檔聲明 Document declaration;
版本 編碼集 是否與其他文件關聯
<?xml vaersion = "1.0" encoding = "編碼集" standalone = "no默認" ?>

2.元素 Element;
1.自定義標簽;建議標簽名全部小寫,保持與HTML的書寫習慣,
因為出現同名的大小寫不便于閱讀
2.成對出現
3.閉合標簽和結束體標簽
4.符合邏輯嵌套
3.屬性 Attribute;
1.屬性名小寫,屬性也是可以自定義的,
2.屬性值要使用 "" 或 '',id不可以以數字開頭
3.多個屬性要使用 空格 隔開
4.可以將屬性作為一個子標簽,因為XML用途不是用于顯示頁面的
4.注釋 Comment;
1.<!-- --> 和HTML一樣
2.注釋不可以嵌套
5.CDATA;
1.XML的轉義字符基本和HTML一致。
2.如果需要轉義的字符太多了則可以使 CDATA
3.CDATA可以將一段字符串原樣的輸出
<![CDATA[字符串]]>
6.處理指令;
1.處理指令時告知解析引擎是要如何處理文檔的。
2.處理指令必須使用 <? ?>
<?xml-stylesheet type = "text/css" href = "路徑">
◆注;
1.XML必須要有一個根節點
2.XML不會在頁面顯示
3.縮進寫法適合閱讀

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓XML—— 文件結構↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆◆◆注; XML文檔必須要有一個根節點◆◆◆

XML文件結構;
Node
|--- Element
|--- Attr
|--- Comment
|--- Text
|--- Document


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓XML—— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


xml解析;
為什么要有?
因為XML主要是用于存儲數據,做配置文件.......
那么XML的數據的···取出···可以通過解析技術可以實現.....
而讀取XML文件;
1.IO ---- 讀取出來的數據不是理想的數據。
2.DOM解析 ---- DOM4J 是一個開源的解析技術
3.SAX解析 ---- SAX 是SUN公司定義的,比較規范,SAX里面也是有使用了DOM4J的技術
解析技術;
1.DOM4J 是一個開源組織的
2.JAXP 是SUN公司定義的
|-- DOM
|-- SAX


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓DOM—— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

DOM解析;
特點;1.是一次性裝載這個文件到內存中,不利于大文件存取操作,
2.適合增刪改查,因為一次是整個文件加載,無需在到硬盤對文件中的內容一個一個去查找
3.在內存中是一棵倒掛的樹
4.DOM是解析XML的底層接口之一
5.是W3C定義的
6.DOM是一個規范,而DOM4J是一個實現了這個規范的解析技術

DOM4J;
1.是DOM解析的一個實現解析技術(如同實現類)
2.特點和DOM一樣,也是一棵倒立的樹型形狀。
3.不是W3C定義的,是一個開源團隊發布的
DOM4J;也是一個組件,而這個組件也是需要下載的,

-----------------------------------------------DOM4J獲取XML文件的方式--------------------------------------------------------------------
◆◆◆注;注意導包的路徑。
DOM4J獲取文件的三種方式;
1.通過解析器的方法傳入一個絕對路徑
a.創建解析器
★ SAXReader sr = new SAXReader();
b.調用解析器的read方法獲取XML文檔,使用文檔對象接收
★ Document doc = sr.read("絕對路徑");
2.通過解析器的方法傳入一個相對路徑
a.創建解析器
★ SAXReader sr = new SAXReader();
b.調用解析器的read()方法,獲取到XML文檔,使用文檔對象接收
★ Document doc = sr.read("相對路徑");
3.通過類的getResourceAsStream("/文件名")方法
a.通過運行時類的對象的getResourceAsStream()的方法
---獲取到這個XML文檔的流
★InputStream is = 類名.class.getResourceStream("/文件名");
b.創建解析器
★ SAXReader sr = new SAXReader();
c.調用解析器的read()方法傳入獲取到的XML文件流,使用文檔對象接收
★ Document doc = sr.read(is);

------------------------------------------DOM4J獲取XML文件的元素方法--------------------------------------------------------------------
◆◆◆注;必須要先獲取到根節點,在根據根節點獲取到其他節點 ◆◆◆
DOM4J獲取元素方法; --- 使用Element Object調用
1.getRootElement() 獲取到根節點
2.elements(寫/沒寫) 只能寫子標簽,不可以寫孫標簽
沒寫;獲取到所有的子標簽標簽 返回的是一個集合
寫了;獲取到指定標簽名的所有標簽
3.getName(); 獲取到標簽名
4.elementText() 獲取到標簽的內容
5.element() 獲取到指定標簽
6.elementById() 獲取到指定的Id標簽
7.elementIterator() 獲取到標簽迭代器
8.getQName() 獲取到標簽名
獲取屬性的方法;----使用 Element Object調用
1.attributeValue() 獲取到指定的屬性的值
2.attirbutes() 獲取到所有的屬性
添加的方法;----使用 Element Object 調用
1.addElement() 添加元素
2.addAttribute() 添加屬性
3.addCDATA() 添加CDATA
4.addText() 添加標簽內容
直接刪除元素方法;使用獲取到的元素對象,
◆ 調用detach()方法可以刪除這個元素和這個元素的所有子元素。

如;element.detach()

------------------------------------------DOM4J刷新文件--------------------------------------------------------------------
DOM4J刷新文件;
1.聲明文件內容的寫入格式。
a.縮進格式;
OutputFormat of =
OutputFormat.createPrettyPrint();

b.行內格式;
OutputFormat of =
OutputFormat.createCompactFormat();
2.創建寫入器
XMLWriter writer = new XMLWriter("FileStream_Path","OutputFormat_Obj");
3.調用寫入器的方法寫入重寫寫入文件
writer.write("Document_Obj");
◆注;
1.將獲取到的XML文檔對象的內容轉換成一個字符串
String Document.asXML();
2.將字符串轉換成一個XML文檔對象

Document.DocumentHanper.parseText("String_Obj");


------------------------------------------DOM4J創建 --> 寫入過程--------------------------------------------------------------------

◆◆◆注意導包◆◆◆
1.創建解析器對象;
SAXReader reader = new SAXReader()
2.調用解析器方法獲取到XML文檔;
Document doc = reader.read("String_Path");
3.獲取到根路徑;
Element doc.getRootElement();
---4.1;將獲取到的文檔對象轉換成字符串
String doc.asXML();
---4.2;將字符串解析成一個XML文檔對象
Document DocumnetHanper.parseText("String");
5.規定寫入XML文件的格式;
1.OutputFormat of =
OutputFormat.createPattryPrint(); --- 縮進格式
2.OutputFormat of =
OutputFormat.createCompactFormat(); --- 行內格式
6.創建寫入器;
XMLWriter writer = new XMLWriter("FileStream_Path",OutputFormat);
7.調用寫入器的寫入XML文件的方法;
writer.wirte(Document);
8.關閉流;
writer.close();
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓Xpath—— 查詢表達式↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Xpath;
為什么要有?
在DOM4J中加載文件時,直接加載整個文件到內存中的,不便于獲取某一個指定的節點。
什么是Xpath?
1、是一個查詢表達式語言,也是一個開源的語言
2、在DOM4J中融合了這個Xpath這個查詢表達式語言
3、這個語言也是一個組件來的,但是在DOM4J組件中已經附帶了
dom4J --- lib --- jaxen-1.1-beta-6.jar
作用;
可以通過Xpath表達式快速定位到某一個XML文件的節點。


------------------------------------------Xpath—— 表達式符號 --------------------------------------------------------------------

表達式符號;
//x 相對定位到某節點
/x 絕對定位絕對定位到某一個節點
/* 是所有節點
[num] 第N個節點
[@x] 選中到某一個屬性
normalize-span 去空格
[text()] 獲取到內容


------------------------------------------Xpath—— 使用 --------------------------------------------------------------------
Xpath的使用;
DOM4J的selectNodes("表達式"); 方法
DOM4J的selectSingleNode("表達式"); 方法
Document .selectNodes() ------ 是返回所有節點的集合
Document .selectSingleNode("表達式") ----- 返回某一個具體的節點
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP —— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JAXP解析技術;
是Sun公司開發的,是XML文檔解析技術的一個集合統稱。
包含;
DOM解析
一次性讀取整個文件到內存中。
SAX解析
讀取一行,解析一行,處理一行。
這2項解析技術都是由SUN公司制定的,較規范
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP——SAX —— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
SAX解析技術;
為什么要有?
1.DOM4J不適合大文件的讀取,因為一次性加載整個文件。
是什么?
1.Simple API For XML 簡單的解析XML文檔API,是由SUN公司定義的一個解析技術,較規范。
2.也是融合了DOM4J的部分技術。
作用;
用于解析XML文檔的一個解析技術
特點;
一次讀取一行,解析一行,處理一行。
適合大文件的存取,不適合增刪改查。
◆注;由于是SUN公司開發的,而在Eclipse或MyEclipse中已經有了組件。
◆◆◆◆◆注;SAX解析主要是用于查詢,一般都不使用寫入操作,因為一般的XML文件都不會太大

-----------------------------------------SAX獲取XML文件的方式--------------------------------------------------------------------
SAX獲取XML文件的方式;
只有 2 種,傳入的字符串是···絕對路徑···或···相對路徑···

-----------------------------------------SAX獲取XML文件的流程 --------------------------------------------------------------------

SAX獲取XML文件的流程;
因為是SUN公司定義的所以也較規范,也定義了獲取XML文件的流程
1.獲取到解析器工廠對象
SAXParserFactory spf =
SAXParserFactory.newInstance();

2.通過解析器工廠對象獲取到具體的解析器對象
SAXParser sp = spf.newSAXParser();

3.通過具體的解析器對象,獲取到讀取器
XMLReader reader = sp.getXMLReader()

4.通過調用讀取器的setContentHandler(obj)方法設置事件處理
reader.setContentHandler(obj);

5.調用讀取器的解析方法,解析XML文件
reader.parse("絕對路徑/相對路徑");


◆注;具體的事件處理在繼承事件處理接口·下·的具體實現類,的類中定義

事件處理;
在SAX中引入了一個事件處理的概念,是用于對文件的內容進行的處理。
1.在調用解析文件parse()的方法,時會觸發事件處理方法中的對象的···主要三個方法···

2.而事件處理ContenHandler是一個接口,
如果實現這個了接口則需要實現這個接口的所有方法
所以可以實現這個接口的具體的實現類。
主要三個方法;
startElement(String uri, String localName, String qName,
Attributes attributes) ----- 獲取到開始標簽

characters(char[] ch, int start, int length) ----- 獲取到標簽內容
endElement(String uri, String localName, String qName)
----- 獲取到結束標簽

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP——DOM —— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JAXP-DOM解析技術;
為什么要有?
1.在SUN公司定義了一個SAX解析,而這個解析的特點是,每次讀取一行,
而不便于增刪改。。。。。
2.而不用DOM4J,因為如果是使用SUN公司定義的標準較規范,
3.使得代碼便于閱讀,因為在閱讀是不必查看是使用什么技術。。。。。
4.在未來的開發中統一使用SUN公司的技術,可以使得兼容性問題的風險降低。。
是什么?
JAXP-DOM解析技術是由SUN公司開發的,里面融合了DOM4J的部分技術
作用;
可以用于解析XML文檔。
特點;
1.一次性加載整個XML文檔到內存中。
2.不適合大的文檔存取,適合增刪改查
3.也是一個倒立的樹型結構。

4.也是遵循DOM規范的。


------------------------------ JAXP——DOM —— 創建->獲取XML文檔流程 -------------------------------------------------------------------

Jaxp-DOM創建流程;
1.獲取到Jaxp_DOM解析工廠對象
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
2.通過解析工廠對象獲取到具體的解析器對象
DomcumentBuilder db = dbf.newDocumentBuilder();
3.通過解析器的解析XML文檔的方法獲取到XML文檔
Document doc = db.parse("絕對路徑/相對路徑")
操作文檔元素的方法;
參考;JAVA_API ---> Document對象,中的方法
和DOM4J/SAX類似
◆◆◆注;不可以使用通過類名獲取到文件輸入流對象
Node n = doc.getElementsByTagName("節點名")[num];

-------------------------------- JAXP——DOM —— 創建->寫入XML文檔流程 --------------------------------------------------------------------
JAXP-DOM創建-寫入;
1.獲取到JAXP-DOM解析工廠接口對象
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();

2.通過解析工廠的對象獲取到具體的解析器對象
DocumentBuilder bd = dbf.newDocumentBuilder();

3.使用解析器對象的parse()方法,獲取到XML文檔的對象
Document doc = bd.parse(絕對路徑/相對路徑);

4.1.在JAXP-DOM的中加入了插入的insertBefore();的方法
a.創建節點
Element_Obj.createElement("結點名");

b.獲取到參考節點

c.獲取到某一個節點(父節點)
Element ele = doc.getDocumentElement();

d.通過父節點插入某一個節點
ele.insertBefore(插入的節點,參考節點);
5.創建寫入工廠對象 【transformer 轉換模型】
TransformerFactory tff =
TransformerFactory.newInstance();
6.通過工廠對象獲取到具體的寫入對象
Transformer tf = tff.newTransformer();
<------
7.調用寫入對象的write方法寫入
▲--> tf.write(new DOMSource("源文件路徑"),new StreamResult(new FileOutputStream("目標路徑")));
◆◆◆注;
1.new DOMSource() 是一個類,而這個類可以關聯要轉換的Document對象
2.new StreamResult() 是一個類,可以表示數據寫出的目的地。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓ XML —— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
XML約束;
為什么要有?
在XML文檔中的標簽可以隨意定義,使得文檔不規范,
也避免用戶輸入有誤,提高用戶的體驗性。
如;在描述人職業的XML文檔中,用戶不小心寫錯了或有人故意破壞,寫了個動物標簽。
什么是XML約束?
規定(規范)XML文檔的書寫格式。
作用;
使得文檔變得規范,便于閱讀,提高用戶的體驗性。
主流約束;
DTD
是一個控制不是很精準的一個約束技術
文件后綴是 .dtd

Scheme
是一個控制精準的一個約束技術,逐步的取代DTD
文件后綴是 .xsd
◆◆◆注;叫是叫Scheme而在書寫scheme約束文檔時是寫schema
----因為Schema的意思更加具體。
schema :模式,計劃
scheme :計劃,策劃,體制
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓ DTD —— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


DTD約束;
是什么?
Document Type Definition 文檔類型定義
作用;
用于規定(規范)一個XML文檔的書寫格式
特點;
對文檔的內容控制不夠精準是,如做不到內容的控制等。

--------------------------------------------DTD文檔定義 --------------------------------------------------------------------

DTD文檔定義;
1.常用的數據類型;
(#PCDATA) 可變長度的字符串
EMPTY 空類型 【一般用于定義閉合標簽】
ANY 任意類型
2.常用的定義符號;
? 0或1
+ 1或N
* 0或N
() 必須出現 1次
3.常用的定義元素的關鍵字;
ELEMENT 定義元素
ATTLIST 定義元素的屬性

◆注;
1.都是大寫
2.一個標簽名可以同時使用2個,
因為;ELMENT是定義元素
ATTLIST 是定義元素的屬性

4.定義屬性常用的關鍵字;
1.#REQUIRED 必須給這個標簽定義該屬性
2.#IMPLIED 這個屬性可寫可不寫
3.#Fixed 給這個屬性定義一個固定值

--------------------------------------------DTD文檔引入方式 --------------------------------------------------------------------
DTD文檔引入方式;
1.外部引入;
<!DOCTYPE 根名 SYSTEM "文件名">
2.內部定義;
<!DOCTYPE 根名[
<!ELEMENT 根名(子標簽)>
<!ELEMENT 子 (#PCDATA)>
]>
3.外部引入;key --- value
<!DOCTYPE 根名 PUBLIC "名稱空間【唯一】" "文件名">


--------------------------------------------DTD文檔定義 --------------------------------------------------------------------
1.文件后綴是DTD
<!ELEMENT 書名 (作者+,價格?)>
<!ElEMENT 作者 (#PCDATA)>
<!ATTLIST 作者 titile CDATA #IMPLIED>
<!ELEMENT 價格 (#PCDATA)>
2.DTD文件沒有注釋
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓ Scheme —— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Scheme約束;
為什么要有?
1.DTD約束對XML的格式控制不夠精準
2.使得用戶可選擇性更多,因為Scheme也比較麻煩


是什么?
Scheme;體制,策劃

作用;
規范(規定)XML的文檔書寫格式

為什么說Scheme控制更加精準?
1.可選擇規定的內容類型更多
2.內容類型的控制
3.內容的規定
特點;
1.文件后綴是.xsd
2.scheme文件的也是屬于一個XML文件,因為聲明處與XML一樣
3.文件的根節點一定是【schema】

◆◆◆注;不要寫成scheme ,
scheme 是策劃,計劃,體制
schema 是 計劃,模式


--------------------------------------------Scheme文檔定義 --------------------------------------------------------------------
Scheme文檔定義;
1.可以指定一個自定義名
2.xmlns 的W3C域名是固定的格式,不可以改變

3.targetNamespace 域名名稱空間可以自定義,但是是要求唯一的

4.elementFormDefault 是固定的格式

5.根標簽一定要是 【schema】


常用關鍵字解析;
sequence 序列;
是指定約束XML文件定義節點時
按照一個什么順序進行一個定義

complextype 復雜類型;
是在xsd文檔聲明這個節點下有子節點。

name;
是標簽名
type;
是標簽內容類型
★注;type如果設置成數值型(double,decimal....)的,一般都是要顯示的賦值
常見的單詞
Ocuurs 重視的意思
decimal 小數

--------------------------------------------Scheme文檔開頭解析 --------------------------------------------------------------------
xs是自定義的一個標識符
名稱空間是一個key,保證唯一性用于約束XML文檔時,XML文檔找到這個文檔
<?xml version = "1.0" encoding = "UTD-8"> ----- 指定文檔類型
<xs:schema xmlns:xs = "
http://www.w3.org/2001/XMLSchema" ----- 固定的格式

targetNamespace = "自定義" ----- 自定義域名,用于標識,
|====一般是域名,保證在網絡上的唯一性

elementFormDefault = "qualified" ----- 固定格式,qualified;合格
>
</xs:schema>


----------------------------------XML文檔 —— 引用 —— Scheme文檔 --------------------------------------------------------------------
1.my ----- 是自定義的一個名字,可以用于在引入多個約束文件時,可以區分
2.xis ----- 是自定義的,也是可以用于在引入多個約束文件時區分,
3.xmlns:xis = "
http://www.w3.org/2001/XMLSchema-instance"
----- 是固定格式
4.xis:schemaLacation ----- 引入一個本地的文件,通過使用 名稱空間 + 文件名 指定 key + value
<my:schema 【根名】 xmlns:my = "scheme文檔的名稱空間值"
xmlns:xis = "
http://www.w3.org/2001/XMLSchema-instance"
xis:schemaLacation = "scheme文檔名稱空間 文件名"
>

</my:scheme>

分享到:
標簽:XML
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定