NO.37 XML相關(guān)

XML 指可擴(kuò)展標(biāo)記語(yǔ)言(EXtensible Markup Language)递宅,是獨(dú)立于軟件和硬件的信息傳輸工具淘太,應(yīng)用于 web 開發(fā)的許多方面行嗤,常用于簡(jiǎn)化數(shù)據(jù)的存儲(chǔ)和共享。

當(dāng)在xml中某一段內(nèi)容想作為普通信息看待砚偶,而其中又出現(xiàn)了大量的xml敏感字符時(shí)挪钓,使用格式:

< ! [ CDATA [ 文本內(nèi)容 ] ] >

xml注釋使用格式:<!--This is a comment-->

我們使用XML語(yǔ)言存儲(chǔ)信息是越,以實(shí)現(xiàn)數(shù)據(jù)與程序的分離。

為方便測(cè)試碌上,定義一個(gè)Emp類:

此處省略get倚评、set方法和toString方法

創(chuàng)建一個(gè).xml文件,有以下內(nèi)容:

解析XML的大致步驟:

1)創(chuàng)建SAXReader

2)使用SAXReader讀取XML文檔并生成Document對(duì)象馏予,這一步就是DOM解析耗時(shí)耗資源的地方天梧,因?yàn)橐葘ML文檔全部讀取并轉(zhuǎn)換為一個(gè)Document對(duì)象保存到內(nèi)存。

3)通過(guò)Document獲取根元素

4)通過(guò)根元素按照XML的結(jié)構(gòu)逐級(jí)獲取子元素霞丧,以達(dá)到遍歷XML文檔數(shù)據(jù)的目的

常用方法:

Document提供了獲取根元素的方法:

Element getRootElement()----Element的每一個(gè)實(shí)例用于表示XML文檔中的一對(duì)標(biāo)簽呢岗。

Element也提供了獲取標(biāo)簽相關(guān)信息的方法:

String getName()----獲取當(dāng)前元素的名字

Element element(String name)----獲取當(dāng)前元素中指定名字的子元素

List elements()----獲取當(dāng)前元素中所有子元素

List elements(String name)----獲取當(dāng)前元素中所有同名子元素

String getText()----獲取元素中間的文本,開始標(biāo)簽與結(jié)束標(biāo)簽中間的文本信息

String elementText(String name)----獲取當(dāng)前元素中指定名字子元素中間的文本

? ? 例如:ele.element("xx").getText()等同于:ele.elementText("xx")

Attribute attribute(String name)----獲取當(dāng)前元素中指定名字的屬性

Attribute的每一個(gè)實(shí)例用于表示一個(gè)屬性,常用方法:

String getName()----獲取屬性名

String getValue()----獲取屬性值

解析過(guò)程

生成XML文檔的大致步驟:

1)創(chuàng)建一個(gè)Document對(duì)象

2)向Document對(duì)象中添加根元素

3)向根元素中逐級(jí)追加子元素以形成XML文檔結(jié)構(gòu)

4)創(chuàng)建XmlWriter

5)通過(guò)XmlWriter寫出Document對(duì)象以形成xml文檔

6)關(guān)閉XmlWriter

Document提供添加根元素的方法:Element addElement(String name)

添加給定名字的根元素蛹尝,并將其以Element實(shí)例形式返回后豫,以便基于根元素繼續(xù)追加操作。

需要注意突那,該方法只能調(diào)用一次挫酿,因?yàn)橐粋€(gè)文檔中只能有一個(gè)根元素。

Element提供了向當(dāng)前元素中添加信息的相關(guān)方法:

1)Element addElement(String name)

向當(dāng)前元素中添加給定名字的子元素,并將該子元素以一個(gè)Element實(shí)例形式返回陨收,便于

繼續(xù)對(duì)子元素追加信息

2)Element addText(String text)

向當(dāng)前元素中添加文本,返回值為當(dāng)前元素饭豹,便于對(duì)當(dāng)前元素繼續(xù)其他操作

3)Element addAttribute(String name,String value)

向當(dāng)前元素中添加指定名字及對(duì)應(yīng)值的屬性

生成xml文檔

XPath 是一門在 XML 文檔中查找信息的語(yǔ)言。XPath 可用來(lái)在 XML 文檔中對(duì)元素和屬性進(jìn)行遍歷务漩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市它褪,隨后出現(xiàn)的幾起案子饵骨,更是在濱河造成了極大的恐慌,老刑警劉巖茫打,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件居触,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡老赤,警方通過(guò)查閱死者的電腦和手機(jī)轮洋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抬旺,“玉大人弊予,你說(shuō)我怎么就攤上這事】疲” “怎么了汉柒?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵误褪,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我碾褂,道長(zhǎng)兽间,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任正塌,我火速辦了婚禮嘀略,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乓诽。我一直安慰自己屎鳍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布问裕。 她就那樣靜靜地躺著逮壁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪粮宛。 梳的紋絲不亂的頭發(fā)上窥淆,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音巍杈,去河邊找鬼忧饭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛筷畦,可吹牛的內(nèi)容都是我干的词裤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鳖宾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吼砂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起鼎文,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤渔肩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后拇惋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體周偎,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年撑帖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蓉坎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡胡嘿,死狀恐怖蛉艾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤伺通,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布箍土,位于F島的核電站,受9級(jí)特大地震影響罐监,放射性物質(zhì)發(fā)生泄漏吴藻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一弓柱、第九天 我趴在偏房一處隱蔽的房頂上張望沟堡。 院中可真熱鬧,春花似錦矢空、人聲如沸航罗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)粥血。三九已至,卻和暖如春酿箭,著一層夾襖步出監(jiān)牢的瞬間复亏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工缭嫡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缔御,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓妇蛀,卻偏偏與公主長(zhǎng)得像耕突,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子评架,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理眷茁,服務(wù)發(fā)現(xiàn),斷路器古程,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 1 場(chǎng)景問(wèn)題# 1.1 讀取配置文件## 考慮這樣一個(gè)實(shí)際的應(yīng)用蔼卡,維護(hù)系統(tǒng)自定義的配置文件。 幾乎每個(gè)實(shí)際的應(yīng)用系...
    七寸知架構(gòu)閱讀 3,109評(píng)論 2 56
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法挣磨,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法荤懂,繼承相關(guān)的語(yǔ)法茁裙,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 31,631評(píng)論 18 399
  • 解釋 為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn) 示例引入 以打游戲?yàn)槔咏诜拢蟾耪麄€(gè)打游戲的過(guò)程可以概括為登錄晤锥、...
    葉林舟閱讀 438評(píng)論 0 3
  • 李白在唐朝有很多粉絲,上至朝廷顯貴,下至普通百姓矾瘾。公元742年(天寶元年)女轿,唐玄宗的秘書監(jiān)賀知章...
    若茜若蘭RosyRolin閱讀 595評(píng)論 0 7