XML這個檔案類型,對於它的印象,我只是隱約記得長得很像HTML,直到工作上用到JavaWeb專案裏頭有一個Servlet用的web.xml檔案,看了很多教學發現XML檔的規範都不太了解,決定先了解基礎再去實作~(不先打好地基,後續真的很麻煩呢)
甚麼是XML?它又能做什麼?
XML是一種可擴張的標記性語言
可以用於保存數據,標籤名稱可以自訂,例如
1
2
3
4
5
6
7
8
9
10
11
12
13
14student[id=3, name="小明"]
student[id=4, name="小華"]
存為xml檔則為
<students>
<student>
<id>3</id>
<name>小明</name>
</studnet>
<student>
<id>4</id>
<name>小華</name>
</studnet>
</students>可用students標籤表示很多學生,裡面又用student表示單個學生,學生又分別有id以及姓名name
可用於設定專案配置
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
27
28
29<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>HelloJSP</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>default.htm</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>index</display-name>
<servlet-name>index</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>可當網路資料的傳輸格式(但現在較多使用JSON檔)
第一個XML檔
1. xml檔一定會有這個宣告,分別是version宣告版本以及encoding宣告編碼方式
1 | <?xml version="1.0" encoding="UTF-8"?> |
2. 註解
1 | <!-- 這是XML的註解 --> |
3. 標籤名稱規則
- 可以包含字母、數字、其他字元(包含中文),例如:
<學生></學生>、<book1></book1> - 不能以數字、標點開頭,像是
<1book></1book> - 不能用xml開頭(但其實可以)
- 名稱不能包含空格
- 可以是單標籤或雙標籤,例如
<student id="15" name="小明"/>或是<student id="15" name="小明"></<student> - 標籤的屬性必須要用引號,例如
<student id=15 />會報錯 - 使用雙標籤必須有頭有尾,否則會報錯,例如:
<book>沒有</book> - XML檔的大小寫是有區分的,若大小寫不同則會區別為不同標籤
- 必須要有根元素,一大包的資料必須要有一層「外殼」,例如 students則是根元素。
1
2
3
4
5
6
7
8
9
10<students>
<student>
<id>3</id>
<name>小明</name>
</studnet>
<student>
<id>4</id>
<name>小華</name>
</studnet>
</students> - 如果資料內容有<>則要以<、>表示,否則會報錯,例如
<name><小明></name>,產出的結果會顯示為<name><小明></name>,或是使用<![CDATA[輸入想打的字]]>使XML不轉譯文字,例如<![CDATA[<<<<<這裡不會報錯]]>
