JAVA中XML講解(應用案例)

      網友投稿 817 2025-04-02

      文章目錄


      一.XML文件的概述

      (1)什么是XML

      (2)XML 與 HTML 的主要差異

      (3)XML語法

      (4)XML 命名規則

      (5)XML作用

      (6)XML基本結構

      二.XML解析

      (1)解析方式

      (2)DOM4J相關類

      一.XML文件的概述

      (1)什么是XML

      XML 指可擴展標記語言 所謂的可擴展標記語言,簡單說就是指xml文件中的標簽可以任意

      定義。

      XML 指可擴展標記語言(EXtensible Markup Language)

      XML 是一種標記語言,很類似 HTML

      XML 的設計宗旨是傳輸數據,而非顯示數據

      XML 標簽沒有被預定義。您需要自行定義標簽。

      XML 被設計為具有自我描述性。

      XML 是 W3C 的推薦標準

      (2)XML 與 HTML 的主要差異

      XML 不是 HTML 的替代。

      XML 和 HTML 為不同的目的而設計:

      XML 被設計為傳輸和存儲數據,其焦點是數據的內容。

      HTML 被設計用來顯示數據,其焦點是數據的外觀。

      HTML 旨在顯示信息,而 XML 旨在傳輸信息。

      (3)XML語法

      XML 標簽對大小寫敏感

      XML 元素都須有關閉標簽

      XML 文檔必須有根元素

      XML 的屬性值須加引號

      (4)XML 命名規則

      XML 元素必須遵循以下命名規則:

      名稱可以含字母、數字以及其他的字符

      名稱不能以數字或者標點符號開始

      名稱不能以字符 “xml”(或者 XML、Xml)開始

      名稱不能包含空格

      (5)XML作用

      XML用來在程序間傳輸數據

      XML可用來存儲數據(框架的配置信息)

      (6)XML基本結構

      文檔版本聲明及編碼

      1

      樹形結構:所有標簽必須包含在一對根標簽中

      整個文檔是一個document對象

      節點

      ①文檔中的某個標簽及其包含的內容稱為一個節點(標簽節點 element)

      ②標簽的某個屬性也是一個節點(屬性節點 attribute)

      ③文檔中的一個文本也是一個節點(文本節點 Text)

      二.XML解析

      (1)解析方式

      所謂的xml解析就是對xml文件進行讀寫操作。

      Xml解析方式分為兩種:

      ①dom方式(document object model)

      即文檔對象模型,它是w3c組織推薦的解析xml的一種方式。

      ②sax方式(simple api for xml)

      不是官方標準,它是xml 社區事實上的標準,幾乎所有的xml解析器都支持它

      dom與sax解析方式,它只一種理論,沒有具體API.

      dom與sax解析方式區別

      dom:

      dom解析方式它是將整個xml文件載入內存,以樹型結構來存儲

      dom支持回寫 可以對xml文件中內容進行crud操作

      如果文件內容比較大,不建議使用dom解析。

      Sax

      相比dom,sax是一種更為輕量級解決方案

      采用串行讀取方式,逐行讀取,讀取一行解析一行。

      編程比較復雜

      sax只能讀取,不能對xml進行修改。

      第三方xml解析包

      Jaxp(sun標準)

      Jdom:專注于寫操作(Java對象–>XML文檔)

      Dom4j:專注于讀操作(XML文檔–>Java對象)

      旺財 哈士奇 豆豆 中華田園犬 花花 藏獒

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      根據xml文件創建對應的類

      public class Dog { private int id; private String name; private String type; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } @Override public String toString() { return "Dog{" + "id=" + id + ", name='" + name + '\'' + ", type='" + type + '\'' + '}'; } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      JAVA中XML講解(應用案例)

      25

      26

      27

      28

      29

      30

      31

      32

      SAXReader Dom4J的讀取文件的類

      代碼實現xml解析

      public class Dom4j_Case { public static void main(String[] args) throws Exception { //創建xml讀取對象 SAXReader reader=new SAXReader(); //讀取要解析的xml文件 Document document=reader.read(new FileInputStream("xml/dogs.xml")); //獲取根節點 Element root=document.getRootElement(); //獲取所有的直接子標簽 List elements = root.elements(); List dogs=new ArrayList<>(); //遍歷 for(Element element:elements) { Dog dog=new Dog(); //獲取指定屬性名稱的值 dog.setId(Integer.parseInt(element.attribute("id").getText())); //獲取指定元素的值 dog.setName(element.elementText("name")); dog.setType(element.elementText("type")); //添加到集合 dogs.add(dog); } //輸出 System.out.println(dogs); } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      (2)DOM4J相關類

      SAXReader 此類用于加載XML文檔

      構造器:無參構造器

      方法: public Document read( String/File…);

      SAXReader reader = new SAXReader(); Document doc = reader.read(xmlFileName);

      1

      2

      Document接口

      獲取根元素: public Element getRootElement();

      //通過Document對象調用getRootElement方法獲取根元素 Element root = doc.getRootElement();

      1

      2

      Element接口:表示xml文檔中的某個元素

      //1.獲取當前元素的所有屬性 List attrs = e.attributes(); //2.根據屬性名獲取屬性值 String attrValue = e.attributeValue(String attrName); //3.獲取當前元素的所有子元素 List childElements = e.elements(); //4.獲取當前元素下指定標簽名的子元素 List childElements = e.elements(String tagName);

      1

      2

      3

      4

      5

      6

      7

      8

      Attribute接口:表示xml文件中元素的屬性

      attr.getName();

      attr.getValue();

      List attrs = root.attributes(); for (int i = 0; i < attrs.size(); i++) { Attribute attr = attrs.get(i); //獲取屬性名 String attrName = attr.getName(); //獲取屬性值 String attrValue = attr.getValue(); System.out.println(attrName+"="+attrValue); }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      The best investment is in yourself.

      2020.03.20 來自辰兮的第33篇博客

      Java XML

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何使用word的統計圖表(word里統計圖怎么做)
      下一篇:WPS表格日期自定填充時怎么跳過指定日期?
      相關文章
      亚洲最大的视频网站| 99久久亚洲综合精品成人网| 亚洲av极品无码专区在线观看| 亚洲av日韩av激情亚洲| 亚洲色成人网站WWW永久| 国产亚洲欧洲Aⅴ综合一区 | 亚洲区日韩精品中文字幕| 国产精品亚洲精品观看不卡| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲高清在线mv| 亚洲黑人嫩小videos| 久久久久亚洲Av无码专| 97久久精品亚洲中文字幕无码| 久久精品国产亚洲av日韩| 久久久亚洲AV波多野结衣| 67pao强力打造67194在线午夜亚洲| 亚洲电影中文字幕| 久久青青草原亚洲av无码app| 亚洲韩国—中文字幕| 亚洲视频免费一区| 亚洲一级片在线播放| 亚洲夂夂婷婷色拍WW47| 亚洲AV无码资源在线观看| 亚洲成年看片在线观看| 亚洲中文字幕丝袜制服一区| 亚洲情综合五月天| 亚洲AV日韩AV永久无码久久| 亚洲黄色三级视频| 久久久久se色偷偷亚洲精品av| 亚洲色大成网站www| 国产精品亚洲精品爽爽| 亚洲午夜国产片在线观看| 亚洲色大成网站WWW久久九九| 亚洲AV永久无码精品成人| 亚洲av无码国产精品夜色午夜| 亚洲激情电影在线| 亚洲精品久久无码| 亚洲日韩VA无码中文字幕 | 亚洲AV无码成H人在线观看| 亚洲国产精品久久丫| 久久综合久久综合亚洲|