XML 2018-09-07

一、XML(EXtendsible Markup Language):可擴(kuò)展標(biāo)記語言 可理解為:xml是描述數(shù)據(jù)的語言
1.特點:xml與操作系統(tǒng)陷谱、編程語言的開發(fā)平臺無關(guān)
2.作用:a.實現(xiàn)不同平臺之間的數(shù)據(jù)交互.
b.實現(xiàn)服務(wù)器(S)與客戶端(B)之間的數(shù)據(jù)交互---->Json技術(shù)
c.充當(dāng)應(yīng)用程序配置文件
d.充當(dāng)xml文件型的數(shù)據(jù)庫

二、編寫一個格式規(guī)范的xml文檔(xml文件擴(kuò)展名:.xml)
1.xml文檔需要有聲明
<?xml version="10" encoding="utf-8"?>
2.xml文檔必需要有根元素
<根元素>文檔主體部分</根元素>

3.編寫xml的注意事項
a.xml標(biāo)簽成對出現(xiàn)且區(qū)分大小寫
b.xml標(biāo)簽正確嵌套
c.xml元素名不能有特殊字符(java變量的規(guī)范)
d.不能出現(xiàn)特殊字符(如:< > ...)
<!CDATA[ 將特列字符當(dāng)作內(nèi)容:<age>21</age> ]]>

4.驗證xml文件
驗證的目錄:驗證出現(xiàn)哪元素、元素出現(xiàn)的順序、元素出現(xiàn)的屬性皱埠、屬性值|元素值的類型
實現(xiàn)xml文件的驗證:DTD,Schema

三、使用xml文件(充當(dāng)數(shù)據(jù)庫) 存多名學(xué)生信息
<?xml version="1.0" encoding="UTF-8"?>
<stulist> 理解表
<student> 理解表中的行
<xh>101</xh> 理解中列
<name>張三</name>
<age>21</age>
<address>湖北武漢</address>
</student>
<student>
<xh>102</xh>
<name>李四</name>
<age>21</age>
<address>湖北武漢</address>
</student>
......
</stulist>

四(重點):java程序解析xml文件
1.解析xml文件的技術(shù):dom解析(基于樹狀結(jié)構(gòu)解析)咖驮、sax解析(基于事件)漱逸、dom4j解析

2.使用DOM4J解析
2.1 術(shù)語:
Docuemnt 表示xml文檔
Element 定義xml文檔中的元素
Attribute 定xml的元素的屬性
Text 表示xml文檔的內(nèi)容

3.解析xml文件的步驟

    //1.導(dǎo)入dom4j的jar包
     //將dom4j的jar包復(fù)制到項目的lib文件夾,再在右鍵jar包添加到構(gòu)建路徑
try {
        //2.獲取解析xml文件的路徑
        String path=System.getProperty("user.dir");  //獲取項目目錄
        String filePath=path+"\\src\\studnets.xml";
        //3.使用SAXReader對象讀取xml文件(將xml文件轉(zhuǎn)化為Document)
        SAXReader reader=new SAXReader();
        Document document=reader.read(filePath);
        //4.獲取文檔根元素
        Element root=document.getRootElement();
        //5.操作xml文檔內(nèi)容
        //5.1獲取元素名稱
        //System.out.println("元素名稱:"+root.getName());
        //5.2獲取元素內(nèi)容
        //System.out.println("元素內(nèi)容:"+root.getText());
        //5.3獲取元素的所有子標(biāo)簽
        List<Element> childs=root.elements();
        for (Element stu : childs) {
            /*
            List<Element> infos=stu.elements();
            System.out.print("姓名:");
            System.out.print(infos.get(0).getText());
            System.out.print("年齡:");
            System.out.print(infos.get(1).getText());
            System.out.print("地址:");
            System.out.print(infos.get(2).getText());
            System.out.println();*/
             //操作屬性
            //List<Attribute> attris=stu.attributes();  //所有屬性
            //System.out.println(attris.get(0).getValue());  //獲取某屬性的值
            String v=stu.attributeValue("xh"); //獲取無素某屬性的值
            System.out.print("學(xué)號:"+v);
            //通過子元素名取值
            System.out.print("姓名是:"+stu.elementText("name"));
            System.out.print("年齡是:"+stu.elementText("age"));
            System.out.print("地址是:"+stu.elementText("address"));
            System.out.println();
        } 
 
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末游沿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肮砾,更是在濱河造成了極大的恐慌诀黍,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仗处,死亡現(xiàn)場離奇詭異眯勾,居然都是意外死亡枣宫,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門吃环,熙熙樓的掌柜王于貴愁眉苦臉地迎上來也颤,“玉大人,你說我怎么就攤上這事郁轻〕崛ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵好唯,是天一觀的道長竭沫。 經(jīng)常有香客問我,道長骑篙,這世上最難降的妖魔是什么蜕提? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮靶端,結(jié)果婚禮上谎势,老公的妹妹穿的比我還像新娘。我一直安慰自己杨名,他們只是感情好脏榆,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镣煮,像睡著了一般姐霍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上典唇,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天镊折,我揣著相機(jī)與錄音,去河邊找鬼介衔。 笑死恨胚,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炎咖。 我是一名探鬼主播赃泡,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼乘盼!你這毒婦竟也來了升熊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤绸栅,失蹤者是張志新(化名)和其女友劉穎级野,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粹胯,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蓖柔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年辰企,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片况鸣。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡牢贸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出镐捧,到底是詐尸還是另有隱情潜索,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布愤估,位于F島的核電站帮辟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏玩焰。R本人自食惡果不足惜由驹,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昔园。 院中可真熱鬧蔓榄,春花似錦、人聲如沸默刚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荤西。三九已至澜搅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間邪锌,已是汗流浹背勉躺。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留觅丰,地道東北人饵溅。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像妇萄,于是被迫代替她去往敵國和親蜕企。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理冠句,服務(wù)發(fā)現(xiàn)轻掩,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 什么是XML懦底? XML:extensiable markup language 被稱作可擴(kuò)展標(biāo)記語言 XML簡單的...
    Java3y閱讀 2,403評論 5 41
  • 這不是我第一次看見他的眼睛放典,但卻是我第一次認(rèn)認(rèn)真真地看它。每每看到,我都在想奋构,這究竟是怎樣的一雙眼睛。他的睫毛長長...
    空也先生閱讀 164評論 0 0
  • 和后臺pk:http://www.reibang.com/p/beffba5a3477 方法很多 一下記錄是走過的...
    失憶的程序員閱讀 146評論 0 1
  • We propose a simple and general variant of the standard r...
    朱小虎XiaohuZhu閱讀 278評論 0 0