xml筆記

      網(wǎng)友投稿 861 2025-04-01

      今日內(nèi)容


      1. XML 1. 概念 2. 語(yǔ)法 3. 解析

      1

      2

      3

      4

      XML:

      1. 概念:Extensible Markup Language 可擴(kuò)展標(biāo)記語(yǔ)言 * 可擴(kuò)展:標(biāo)簽都是自定義的。 * 功能 * 存儲(chǔ)數(shù)據(jù) 1. 配置文件 2. 在網(wǎng)絡(luò)中傳輸 * xml與html的區(qū)別 1. xml標(biāo)簽都是自定義的,html標(biāo)簽是預(yù)定義。 2. xml的語(yǔ)法嚴(yán)格,html語(yǔ)法松散 3. xml是存儲(chǔ)數(shù)據(jù)的,html是展示數(shù)據(jù) * w3c:萬(wàn)維網(wǎng)聯(lián)盟 2. 語(yǔ)法: * 基本語(yǔ)法: 1. xml文檔的后綴名 .xml 2. xml第一行必須定義為文檔聲明 3. xml文檔中有且僅有一個(gè)根標(biāo)簽 4. 屬性值必須使用引號(hào)(單雙都可)引起來(lái) 5. 標(biāo)簽必須正確關(guān)閉 6. xml標(biāo)簽名稱(chēng)區(qū)分大小寫(xiě) * 快速入門(mén): zhangsan 23 male
      lisi 24 female
      * 組成部分: 1. 文檔聲明 1. 格式: 2. 屬性列表: * version:版本號(hào),必須的屬性 * encoding:編碼方式。告知解析引擎當(dāng)前文檔使用的字符集,默認(rèn)值:ISO-8859-1 * standalone:是否獨(dú)立 * 取值: * yes:不依賴(lài)其他文件 * no:依賴(lài)其他文件 2. 指令(了解):結(jié)合css的 * 3. 標(biāo)簽:標(biāo)簽名稱(chēng)自定義的 * 規(guī)則: * 名稱(chēng)可以包含字母、數(shù)字以及其他的字符 * 名稱(chēng)不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開(kāi)始 * 名稱(chēng)不能以字母 xml(或者 XML、Xml 等等)開(kāi)始 * 名稱(chēng)不能包含空格 4. 屬性: id屬性值唯一 5. 文本: * CDATA區(qū):在該區(qū)域中的數(shù)據(jù)會(huì)被原樣展示 * 格式: * 約束:規(guī)定xml文檔的書(shū)寫(xiě)規(guī)則 * 作為框架的使用者(程序員): 1. 能夠在xml中引入約束文檔 2. 能夠簡(jiǎn)單的讀懂約束文檔 * 分類(lèi): 1. DTD:一種簡(jiǎn)單的約束技術(shù) 2. Schema:一種復(fù)雜的約束技術(shù) * DTD: * 引入dtd文檔到xml文檔中 * 內(nèi)部dtd:將約束規(guī)則定義在xml文檔中 * 外部dtd:將約束的規(guī)則定義在外部的dtd文件中 * 本地: * 網(wǎng)絡(luò): * Schema: * 引入: 1.填寫(xiě)xml文檔的根元素 2.引入xsi前綴. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3.引入xsd文件命名空間. xsi:schemaLocation="http://www.itcast.cn/xml student.xsd" 4.為每一個(gè)xsd約束聲明一個(gè)前綴,作為標(biāo)識(shí) xmlns="http://www.itcast.cn/xml" 3. 解析:操作xml文檔,將文檔中的數(shù)據(jù)讀取到內(nèi)存中 * 操作xml文檔 1. 解析(讀取):將文檔中的數(shù)據(jù)讀取到內(nèi)存中 2. 寫(xiě)入:將內(nèi)存中的數(shù)據(jù)保存到xml文檔中。持久化的存儲(chǔ) * 解析xml的方式: 1. DOM:將標(biāo)記語(yǔ)言文檔一次性加載進(jìn)內(nèi)存,在內(nèi)存中形成一顆dom樹(shù) * 優(yōu)點(diǎn):操作方便,可以對(duì)文檔進(jìn)行CRUD的所有操作 * 缺點(diǎn):占內(nèi)存 2. SAX:逐行讀取,基于事件驅(qū)動(dòng)的。 * 優(yōu)點(diǎn):不占內(nèi)存。 * 缺點(diǎn):只能讀取,不能增刪改 * xml常見(jiàn)的解析器: 1. JAXP:sun公司提供的解析器,支持dom和sax兩種思想 2. DOM4J:一款非常優(yōu)秀的解析器 3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過(guò)DOM,CSS以及類(lèi)似于jQuery的操作方法來(lái)取出和操作數(shù)據(jù)。 4. PULL:Android操作系統(tǒng)內(nèi)置的解析器,sax方式的。 * Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過(guò)DOM,CSS以及類(lèi)似于jQuery的操作方法來(lái)取出和操作數(shù)據(jù)。 * 快速入門(mén): * 步驟: 1. 導(dǎo)入jar包 2. 獲取Document對(duì)象 3. 獲取對(duì)應(yīng)的標(biāo)簽Element對(duì)象 4. 獲取數(shù)據(jù) * 代碼: //2.1獲取student.xml的path String path = JsoupDemo1.class.getClassLoader().getResource("student.xml").getPath(); //2.2解析xml文檔,加載文檔進(jìn)內(nèi)存,獲取dom樹(shù)--->Document Document document = Jsoup.parse(new File(path), "utf-8"); //3.獲取元素對(duì)象 Element Elements elements = document.getElementsByTag("name"); System.out.println(elements.size()); //3.1獲取第一個(gè)name的Element對(duì)象 Element element = elements.get(0); //3.2獲取數(shù)據(jù) String name = element.text(); System.out.println(name); * 對(duì)象的使用: 1. Jsoup:工具類(lèi),可以解析html或xml文檔,返回Document * parse:解析html或xml文檔,返回Document * parse (File in, String charsetName):解析xml或html文件的。 * parse (String html):解析xml或html字符串 * parse (URL url, int timeoutMillis):通過(guò)網(wǎng)絡(luò)路徑獲取指定的html或xml的文檔對(duì)象 2. Document:文檔對(duì)象。代表內(nèi)存中的dom樹(shù) * 獲取Element對(duì)象 * getElementById (String id):根據(jù)id屬性值獲取唯一的element對(duì)象 * getElementsByTag (String tagName):根據(jù)標(biāo)簽名稱(chēng)獲取元素對(duì)象集合 * getElementsByAttribute (String key):根據(jù)屬性名稱(chēng)獲取元素對(duì)象集合 * getElementsByAttributeValue (String key, String value):根據(jù)對(duì)應(yīng)的屬性名和屬性值獲取元素對(duì)象集合 3. Elements:元素Element對(duì)象的集合。可以當(dāng)做 ArrayList來(lái)使用 4. Element:元素對(duì)象 1. 獲取子元素對(duì)象 * getElementById (String id):根據(jù)id屬性值獲取唯一的element對(duì)象 * getElementsByTag (String tagName):根據(jù)標(biāo)簽名稱(chēng)獲取元素對(duì)象集合 * getElementsByAttribute (String key):根據(jù)屬性名稱(chēng)獲取元素對(duì)象集合 * getElementsByAttributeValue (String key, String value):根據(jù)對(duì)應(yīng)的屬性名和屬性值獲取元素對(duì)象集合 2. 獲取屬性值 * String attr(String key):根據(jù)屬性名稱(chēng)獲取屬性值 3. 獲取文本內(nèi)容 * String text():獲取文本內(nèi)容 * String html():獲取標(biāo)簽體的所有內(nèi)容(包括字標(biāo)簽的字符串內(nèi)容) 5. Node:節(jié)點(diǎn)對(duì)象 * 是Document和Element的父類(lèi) * 快捷查詢(xún)方式: 1. selector:選擇器 * 使用的方法:Elements select (String cssQuery) * 語(yǔ)法:參考Selector類(lèi)中定義的語(yǔ)法 2. XPath:XPath即為XML路徑語(yǔ)言,它是一種用來(lái)確定XML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集)文檔中某部分位置的語(yǔ)言 * 使用Jsoup的Xpath需要額外導(dǎo)入jar包。 * 查詢(xún)w3cshool參考手冊(cè),使用xpath的語(yǔ)法完成查詢(xún) * 代碼: //1.獲取student.xml的path String path = JsoupDemo6.class.getClassLoader().getResource("student.xml").getPath(); //2.獲取Document對(duì)象 Document document = Jsoup.parse(new File(path), "utf-8"); //3.根據(jù)document對(duì)象,創(chuàng)建JXDocument對(duì)象 JXDocument jxDocument = new JXDocument(document); //4.結(jié)合x(chóng)path語(yǔ)法查詢(xún) //4.1查詢(xún)所有student標(biāo)簽 List jxNodes = jxDocument.selN("http://student"); for (JXNode jxNode : jxNodes) { System.out.println(jxNode); } System.out.println("--------------------"); //4.2查詢(xún)所有student標(biāo)簽下的name標(biāo)簽 List jxNodes2 = jxDocument.selN("http://student/name"); for (JXNode jxNode : jxNodes2) { System.out.println(jxNode); } System.out.println("--------------------"); //4.3查詢(xún)student標(biāo)簽下帶有id屬性的name標(biāo)簽 List jxNodes3 = jxDocument.selN("http://student/name[@id]"); for (JXNode jxNode : jxNodes3) { System.out.println(jxNode); } System.out.println("--------------------"); //4.4查詢(xún)student標(biāo)簽下帶有id屬性的name標(biāo)簽 并且id屬性值為itcast List jxNodes4 = jxDocument.selN("http://student/name[@id='itcast']"); for (JXNode jxNode : jxNodes4) { System.out.println(jxNode); }

      1

      2

      3

      xml筆記

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      116

      117

      118

      119

      120

      121

      122

      123

      124

      125

      126

      127

      128

      129

      130

      131

      132

      133

      134

      135

      136

      137

      138

      139

      140

      141

      142

      143

      144

      145

      146

      147

      148

      149

      150

      151

      152

      153

      154

      155

      156

      157

      158

      159

      160

      161

      162

      163

      164

      165

      166

      167

      168

      169

      170

      171

      172

      173

      174

      175

      176

      177

      178

      179

      180

      181

      182

      183

      184

      185

      186

      187

      188

      189

      190

      191

      192

      193

      194

      195

      196

      197

      198

      199

      200

      201

      202

      203

      204

      205

      206

      207

      208

      209

      210

      211

      212

      213

      214

      215

      Java XML

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何在Excel2007中顯示“開(kāi)發(fā)工具”選項(xiàng)卡
      下一篇:word怎么調(diào)整行間距
      相關(guān)文章
      亚洲中文字幕无码一区| 国产成人 亚洲欧洲| 亚洲成av人片在线观看天堂无码 | www.亚洲成在线| 亚洲精选在线观看| 亚洲国产成人片在线观看| 亚洲日韩精品无码一区二区三区| 亚洲熟伦熟女新五十路熟妇| 亚洲国产精品13p| 亚洲区小说区图片区| 2022中文字字幕久亚洲| 亚洲国产精品狼友中文久久久| 国产精品亚洲一区二区在线观看| 亚洲精品无播放器在线播放| 亚洲精品美女久久7777777| 亚洲精品宾馆在线精品酒店| 亚洲日韩精品无码专区加勒比| 亚洲一久久久久久久久| 亚洲国产成人手机在线观看| 亚洲爆乳大丰满无码专区| 春暖花开亚洲性无区一区二区 | 亚洲AV无码国产精品麻豆天美| 久久精品国产亚洲AV麻豆王友容| 亚洲国产日韩一区高清在线| 亚洲av成人无码久久精品| 4480yy私人影院亚洲| 亚洲午夜在线一区| 亚洲午夜福利在线视频| 含羞草国产亚洲精品岁国产精品| 亚洲а∨天堂久久精品| 久久精品国产亚洲7777| 亚洲中文字幕无码日韩| 午夜影视日本亚洲欧洲精品一区| 亚洲天堂一区二区| 亚洲三级视频在线观看| 亚洲高清乱码午夜电影网| 亚洲 无码 在线 专区| 亚洲中文字幕久久精品无码APP| 久久夜色精品国产亚洲| 亚洲精品人成电影网| 亚洲午夜理论片在线观看|