java创建树结构_Java学习之XML-017
如果想快速有效的學習,思想核心是“以建立知識體系為核心”,具體方法是“守破離”。反復練習直到熟練?!賾?zhàn)程序員
1.0 XML
1.1 XML 簡介
XML 指可擴展標記語言。XML 被設(shè)計用來傳輸和存儲數(shù)據(jù)。1. 什么是XML
- XML 指可擴展標記語言(EXtensible Markup Language)
- XML 是一種標記語言,很類似 HTML
- XML 的設(shè)計宗旨是傳輸數(shù)據(jù),而非顯示數(shù)據(jù)
- XML 標簽沒有被預定義。您需要自行定義標簽。
- XML 被設(shè)計為具有自我描述性。
- XML 是 W3C 的推薦標準
2. XML 和 HTML 的主要差異
- XML 不是 HTML 的替代。
- XML 和 HTML 為不同的目的而設(shè)計。
- XML 被設(shè)計為傳輸和存儲數(shù)據(jù),其焦點是數(shù)據(jù)的內(nèi)容。
- HTML 被設(shè)計用來顯示數(shù)據(jù),其焦點是數(shù)據(jù)的外觀。
- HTML 旨在顯示信息,而 XML 旨在傳輸信息。
3. 沒有任何行為的XML
XML是不作為的。
也許這有點難以理解,但是 XML 不會做任何事情。XML 被設(shè)計用來結(jié)構(gòu)化、存儲以及傳輸信息。
4. XML 僅僅是純文本
XML沒什么特別的。它僅僅是純文本而已。有能力處理純文本的軟件都可以處理XML。
不過,能夠讀懂XML的應用程序可以有針對性地處理XML標簽。標簽的功能性意義依賴應用程序的特性。
5. 通過XML您可以發(fā)明自己的標簽
XML 沒有預定義的標簽。
在 HTML 中使用的標簽(以及 HTML 的結(jié)構(gòu))是預定義的。HTML 文檔只使用在 HTML 標準中定義過的標簽(比如 <p> 、<h1> 等等)。
XML 允許創(chuàng)作者定義自己的標簽和自己的文檔結(jié)構(gòu)。
6. XML 不是對 HTML 的替代
XML 是對 HTML 的補充。
XML 不會替代 HTML,理解這一點很重要。在大多數(shù) web 應用程序中,XML 用于傳輸數(shù)據(jù),而 HTML 用于格式化并顯示數(shù)據(jù)。
對 XML 最好的描述是:
XML 是獨立于軟件和硬件的信息傳輸工具。
7. XML 是 W3C 的推薦標準
可擴展標記語言 (XML) 于 1998 年 2 月 10 日成為 W3C 的推薦標準。
8. XML無處不在
目前,XML 在 Web 中起到的作用不會亞于一直作為 Web 基石的 HTML。
XML 無所不在。XML 是各種應用程序之間進行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ?#xff0c;并且在信息存儲和描述領(lǐng)域變得越來越流行。
1.2 XML 用途
XML 應用于 web 開發(fā)的許多方面,常用于簡化數(shù)據(jù)的存儲和共享。1,XML 把數(shù)據(jù)從 HTML 分離
2,XML 簡化數(shù)據(jù)共享
3,XML 簡化數(shù)據(jù)傳輸
4,XML 簡化平臺的變更
5,XML 使您的數(shù)據(jù)更有用
6,XML 用于創(chuàng)建新的 Internet 語言
1.3 XML 樹結(jié)構(gòu)
XML 文檔形成了一種樹結(jié)構(gòu),它從“根部”開始,然后擴展到“枝葉”。
一個 XML 文檔實例
<?xml version="1.0" encoding="utf-8"?> <note> <to>Li</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>第一行是 XML 聲明。它定義 XML 的版本 (1.0) 和所使用的編碼 。
下一行描述文檔的根元素。
接下來 4 行描述根的 4 個子元素(to, from, heading 以及 body)。
最后一行定義根元素的結(jié)尾。
XML 文檔形成一種樹結(jié)構(gòu)1.4 XML 基本語法
XML的基本語法:
1)文檔聲明必須放在文檔的第一行
2)XML有且只有一個根元素
3)所有標簽必須成對出現(xiàn)
4)XML的標簽嚴格區(qū)分大小寫
5)XML必須正確嵌套
6)XML中的屬性值必須加引號
7)XML中一些特殊字符需要使用“實體”
8)XML中可以應用適合的注釋
XML元素 指的是開始標簽到結(jié)束標簽的部分,一個元素中可以包含其他元素,文本,屬性等
XML 元素的命名規(guī)范:
1)名稱可以包含字母、數(shù)字等其他字符,最好是用字母單詞。
2)名稱不能以數(shù)字或標點符號開始。
3)名稱不能以字母XML開始
4)名稱不能包含空格
1.5 驗證XML文檔 - Schema技術(shù)
1)Schema 是用 XML 驗證 XML 遵循 XML 的語法
2)Schema 可以用處理 XML 文檔的工具處理
3)Schema 大大擴充了數(shù)據(jù)類型,而且可以自定義數(shù)據(jù)類型
4)Schema 支持元素的繼承
5)Schema 支持屬性組
使用 Schema 驗證 XML 文檔的步驟:
1)創(chuàng)建SchemaFactory 工廠
2)建立驗證文件對象
3)利用SchemaFactory 工廠對象,接受驗證的文件對象,生成Schema 對象
4)產(chǎn)生對此Schema 的驗證器
5)要驗證的數(shù)據(jù)(準備的數(shù)據(jù)源)
6)開始驗證
1.6 解析 XML 文檔
四種方式解析XML 文檔:
1.6.1 DOM解析XML 的步驟
1)創(chuàng)建一個DocumentBuilderFactory的對象
2)創(chuàng)建一個DocumentBuilder對象
3)通過DocumentBuilder的parse(...)方法得到Document對象
4)通過getElementsByTagName(...)方法獲取到節(jié)點列表
5)通過for循環(huán)遍歷每一個節(jié)點
6)得到每個節(jié)點的屬性和屬性值
7)得到每個節(jié)點的節(jié)點和節(jié)點值
1.6.2 SAX解析XML 的步驟
1)創(chuàng)建SAXParserFactory的對象
2)創(chuàng)建SAXXParser對象(解析器)
3)創(chuàng)建一個DefaultHandler的子類
4)調(diào)用parse方法
1.6.3 JDOM解析XML 的步驟
1)創(chuàng)建一個SAXBuilder對象
2)調(diào)用build方法 得到Document對象(通過IO流)
3)獲取根節(jié)點
4)獲取根節(jié)點的直接子節(jié)點的集合
5)遍歷集合
1.6.4 DOM4J解析XML 的步驟
1)創(chuàng)建SAXReader對象
2)調(diào)用read方法
3)獲取根元素
4)通過迭代器遍歷直接節(jié)點
四種解析XML技術(shù)的特點:
1)DOM解析:形成了樹結(jié)構(gòu),有助于更好的理解、掌握,且代碼容易編寫。解析過程中,樹結(jié)構(gòu)保存在內(nèi)存中,方便修改。
2)SAX解析:采用事件驅(qū)動模式,對內(nèi)存消耗比較小。適用于只處理XML文件中的數(shù)據(jù)時。
3)JDOM解析:僅使用具體類 而不使用接口。API大量使用了Collect類。
4)JDOM4J解析:JDOM的一種智能分支,它合并了許多超出基本XML文檔表示的功能。它使用接口和抽象基本類方法。具有性能優(yōu)異、靈活性好、功能強大和極易使用的特點。是一個開源的文件。
1.7 XPath 技術(shù)
XPath 是一門在 XML 文檔中查找信息的語言。XPath 用于在 XML 文檔中通過元素和屬性進行導航。
什么是 XPath?
- XPath 使用路徑表達式在 XML 文檔中進行導航
- XPath 包含一個標準函數(shù)庫
- XPath 是 XSLT 中的主要元素
- XPath 是一個 W3C 標準
Java中使用XPath快速獲取節(jié)點:
1)導入DOM4J包
2)導入Jaxen包
3)創(chuàng)建SAXReader對象
4)讀取XML文件
5)獲取目標節(jié)點,遍歷查找目標元素
未完待續(xù)
總結(jié)
以上是生活随笔為你收集整理的java创建树结构_Java学习之XML-017的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: longtext长度为0是什么意思_为什
- 下一篇: 同步方法 调用异步防范_.NET Web