day08-XML

XML官方文檔:https://www.w3school.com.cn/xml/index.asp
1.為什么需要xml?

  1. 需求1:兩個程序間進行數據通信?
  2. 需求2:給一臺服務器,做一個配置文件,當服務器程序啟動時,去讀取它應當監聽的端口號、還有連接數據庫的用戶名和密碼
  3. spring中的IOC配置文件beans.xml,mybatis的xxxMapper.xml文件,tomcat的server.xml , web.xml文件
  4. xml能存儲復雜的數據關系
? xml技術用于解決什么問題?
  • 解決程序間數據傳輸的問題:
    比如qq之間的數據傳送,用xml格式來傳輸數據,具有良好的可讀性,可維護性
    以前兩個程序間的通信用xml作為數據通信的格式,現在一般用json
  • xml可以做配置文件
    xml做配置文件可以說是非常的普遍,比如我們的tomcat服務器的server.xml web.xml
  • xml可以充當小型的數據庫
    我們程序中可能用到的數據,如果放在數據庫中讀取不合適(因為你要增加維護數據庫工作),可以考慮直接用xml文件來做小型數據庫 , 而且直接讀取文件顯然要比讀取數據庫快
    現在也不太使用xml作數據存儲了
2.xml語法
  • 快速入門
需求:使用idea創建Students.xml存儲多個學生信息
<?xml version="1.0" encoding="UTF-8" ?><!--1.xml:表示該文件的類型為xml2.version 表示版本3.encoding="UTF-8" 文件編碼為UTF-84.students:root元素/根元素,名字自己定義5.<student> </student>表示一個students的子元素,可以有多個6.id就是屬性,name,age,gender是student元素的子元素--><students><student id="100"><name>jack</name><age>10</age><gender>男</gender></student><student id="200"><name>Mary</name><age>18</age><gender>女</gender></student></students>
  • 一個xml文檔分為如下幾部分內容
    • 文檔聲明
    • 元素
    • 屬性
    • 注釋
    • CDATA區、特殊字符
2.1文檔聲明<?xml version="1.0" encoding="UTF-8" ?>
  1. xml聲明放在xml文檔的第一行
  2. xml聲明由以下幾個部分組成:
    • version:文檔符合xml1.0規范,我們學習1.0
    • encoding:文檔字符編碼,比如:utf-8
2.2元素
  1. 元素語法要求:
  • 每個xml文檔必須有且只有一個根元素
  • 根元素是一個完全包括文檔中其他所有元素的元素
  • 根元素的起始標記要放在所有其他元素的起始標記之前
  • 根元素的結束標記要放在所有其他元素的結束標記之后
  1. xml元素指xml文件中出現的標簽,一個標簽分為開始標簽和結束標簽,一個標簽有如下幾種書寫形式
  • 包含標簽體:<a>www.baidu.com</a>
  • 不含標簽體:<a></a>,簡寫為<a/>
  • 一個標簽中也可以嵌套若干子標簽 。但所有的標簽必須合理地嵌套,絕對不允許交叉嵌套
  1. 在很多時候,元素,節點,標簽是相同的意思
  2. xml元素命名規則:
    • 區分大小寫,例如:<P><p>是兩個不同的標記
    • 不能以數字開頭
    • 不能包含空格
    • 名稱中間不能包含冒號:
    • 如果標簽單詞需要間隔,建議使用下劃線
2.3屬性屬性介紹:
  1. 屬性值用雙引號""或單引號''分隔(如果屬性值中有單引號'',就用雙引號""分隔,如過屬性值中有雙引號"",就用單引號''分隔)
  2. 一個元素可以用多個屬性 , 它的基本格式為:<元素名 屬性名="屬性值">
  3. 特定的屬性名稱在同一個元素標記中只能出現一次
    即屬性名稱在同一個元素中不能重復
  4. 屬性值不能包括&字符
2.4注釋
  1. <!--這是一個注釋-->
  2. 注釋內容中不要出現 --
  3. 不要把注釋放在標記中間 。錯誤寫法:<Name <!--the name-->>TOM</Name>
  4. 注釋不能嵌套
  5. 可以在除標記以外的任何地方放注釋
2.5CDATA節有些內容不想讓解析引擎執行 , 而是當做原始內容(普通文本)處理,可以使用CDATA括起來,CDATA節中的所有字符都會被當做簡單文本,而不是xml標記
  1. 語法:
    <![CDATA[這里可以把你輸入的字符原樣顯示,不會解析xml]]>

    推薦閱讀