XML的應用

1.XML的定義:

XML 于 1998 年 2 月 10 日成為?W3C?的推薦標準。xml一般指可擴展標記語言,可擴展標記語言是一種很像超文本標記語言的標記語言。它的設計宗旨是傳輸數據,而不是顯示數據。

2.通過XML我們可以自定義自己的標簽,如:

?

<mail><from>tom</from><to>lily</to><detail>I will go home this weekend!</detail>
</mail>

3.XML結構

XML是一種樹結構。樹是一種重要的非線性數據結構,直觀地看,它是數據元素(在樹中稱為結點)按分支關系組織起來的結構,很象自然界中的樹那樣。XML文檔必須包含根元素,該元素是所有其他元素的父元素。XML文檔中的元素形成了一棵文檔樹,這棵樹從根部開始,并擴展到樹的最底端。

4.XML語法規則

XML聲明,如:<?xml version="1.0" encoding="utf-8"?>

它定義XML的版本(1.0)和所使用的編碼(utf-8)字符集。

  1. 所有的XML元素都是成對出現的,有一個開始標簽,就必須有一個關閉標簽。
  2. XML標簽對大小寫敏感,標簽與標簽是不同的。
  3. XML文檔必須有根元素,標簽如果需要嵌套,必須正確嵌套,在內層打開的標簽就必須在內層關閉。
  4. XML標簽如果需要添加屬性,屬性值必須加引號。
  5. 在XML中編寫注釋的語法與HTML的語法很相似,都是。
  6. 在XML中,空格會被保留,不像HTML中,加再多的空格最終都只合并為一個。?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 特殊符號:

引用符號說明
&lt;<小于
&gt;>大于
&amp;&and符號
&apos;'單引號
&quot;"雙引號

?

?

5.XML命名規則

?

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

?

  • 名稱可以包含字母、數字以及其他的字符
  • 名稱不能以數字或者標點符號開始
  • 名稱不能以字母 xml(或者 XML、Xml 等等)開始
  • 名稱不能包含空格
  • 可使用任何名稱,沒有保留的字詞。

6.創建XML文件

/**
* 創建XML文件
* 
* @throws IOException
*/
public void createXml() throws IOException {
// 創建Document對象
Document document = DocumentHelper.createDocument();
// 根元素節點
Element root = document.addElement("students");
root.addComment("all students info"); // 添加注釋
Element student = root.addElement("student"); // 根元素節點添加子節點
student.addAttribute("id", "001"); // 添加節點屬性
Element name = student.addElement("name");
name.addText("July"); // 設置節點文本
Element age = student.addElement("age");
age.addText("18");
// 設置XML美化格式
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8"); // 編碼字符集設置
// xml寫入器
XMLWriter writer = new XMLWriter(new FileWriter("students.xml"), format);
// 寫操作
writer.write(document);
writer.flush();
writer.close();
}

7:DTD的概念:

DTD(文檔類型定義)的作用是定義XML文檔的合法構建模塊。擁有正確語法的XML被稱為“形式良好”的XML,我們可以通過DTD驗證XML是“合法”的 XML。

8.DTD元素

<!ELEMENT 元素名稱 類別>

只有 PCDATA 的元素

只有 PCDATA 的元素通過圓括號中的#PCDATA進行聲明:

<!ELEMENT 元素名稱 (#PCDATA)>

示例:

<!ELEMENT from (#PCDATA)>

帶有任何內容的元素

通過類別關鍵詞ANY聲明的元素,可包含任何可解析數據的組合:

<!ELEMENT 元素名稱 ANY>

示例:

<!ELEMENT mail ANY>

帶有子元素(序列)的元素

帶有一個或多個子元素的元素通過圓括號中的子元素名進行聲明:

<!ELEMENT 元素名稱 (子元素名稱 1)>

或者

<!ELEMENT 元素名稱 (子元素名稱 1,子元素名稱 2,.....)>

示例:

<!ELEMENT mail (from,to,detail)>

8.DTD屬性

聲明屬性

屬性聲明使用下列語法:

<!ATTLIST 元素名稱 屬性名稱 屬性類型 默認值>
9.CDATA與PCDATA
 

XML文檔中的所有文本均會被解析器解析,只有CDATA區段中的文本會被解析器忽略。

10.外部文檔聲明
這是包含DTD的“mail.dtd”文件:<!ELEMENT mail (from,to,detail)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT detail (#PCDATA)>
XML文件:<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mail SYSTEM "mail.dtd">   
<mail><from>tom</from><to>lily</to><detail>I will go home this weekend!</detail>
</mail>

11.內部文檔聲明

?

假如DTD被包含在XML源文件中,它應當通過下面的語法包裝在一個DOCTYPE聲明中:

?

假如DTD被包含在XML源文件中,它應當通過下面的語法包裝在一個DOCTYPE聲明中:<!DOCTYPE root-element [element-declarations]>
如:<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mail[
<!ELEMENT mail (from,to,detail)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT detail (#PCDATA)>
]>  
<mail><from>tom</from><to>lily</to><detail>I will go home this

?

 

?

 

?

轉載于:https://www.cnblogs.com/g398429959/p/4491464.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258958.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258958.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258958.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

虛擬機VMware里 windows server 2003 擴充C盤方法

你會經常用windows server 2003 嗎&#xff1f;應該不會吧&#xff0c;有時一些東西必須裝在windows server 2003 上才能用&#xff0c;所以 用虛擬機把&#xff0c;好&#xff0c;裝在虛擬機上&#xff0c;8G的C盤夠你用嗎&#xff0c;一個稍微大點的軟件就可能就沒空間來存儲…

從運維角度淺談MySQL數據庫優化

一個成熟的數據庫架構并不是一開始設計就具備高可用、高伸縮等特性的&#xff0c;它是隨著用戶量的增加&#xff0c;基礎架構才逐漸完善。這篇博文主要談MySQL數據庫發展周期中所面臨的問題及優化方案&#xff0c;暫且拋開前端應用不說&#xff0c;大致分為以下五個階段&#x…

c語言c99標準_自學C語言之一

上次自學C語言還是在剛開學到國慶期間&#xff0c;聽學姐的建議買了本C語言的書&#xff0c;在軍訓期間的晚上翻翻看看。后來選課、開始正式上課、面試社團、開各種會等等&#xff0c;好像每天都有許多事要忙&#xff0c;但又沒忙出來什么結果&#xff0c;慢慢地好像就把C語言放…

boost解析info文件

先給出info文件&#xff1a; parameters {MAX_STAGES 4MAX_DEPTH 3MAX_NUMTRESS 5MAX_NUMTHRESHS 500MAX_NUMFEATS 1000,1000,1000,500,500,500,400,400MAX_RATIO_RADIUS 0.3,0.2,0.2,0.15,0.12,0.10,0.08,0.06,0.06,0.05BAGGING_OVERLAP 0.4IS_FLIP true }meanface {MAX_ITER…

Font Rending 的 Hint 機制對排版的影響

Font Rending 的 Hint 機制對排版的影響【轉】 在設計一種 Font 時&#xff0c;設計者使用的是一個抽象的單位&#xff0c;叫做 EM&#xff0c;來源于大寫 M 的寬度&#xff08;通常英文字體中大寫 M 的寬度最大&#xff09;。EM 即不同于在屏幕顯示時用的像素&#xff08;Pixe…

《SQL初學者指南(第2版)》——2.4 指定列

本節書摘來自異步社區出版社《SQL初學者指南&#xff08;第2版&#xff09;》一書中的第2章&#xff0c;第2.4節&#xff0c;作者&#xff1a;【美】Larry Rockoff&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.4 指定列 到目前為止&#xff0c;我們只…

python從文件中提取特定文本_使用Python從HTML文件中提取文本

我發現最好的一段代碼用于提取文本&#xff0c;而不需要javascript或不需要的東西&#xff1a;import urllibfrom bs4 import BeautifulSoupurl "http://news.bbc.co.uk/2/hi/health/2284783.stm"html urllib.urlopen(url).read()soup BeautifulSoup(html)# kill …

mutable、volatile的使用

本文轉載自http://blog.csdn.net/tht2009/article/details/6920511 (1)mutable 在C中&#xff0c;mutable是為了突破const的限制而設置的。被mutable修飾的變量&#xff0c;將永遠處于可變的狀態&#xff0c;即使在一個const函數中&#xff0c;甚至結構體變量或者類對象為const…

文本框點擊后文字消失總結

1.文本框顯示默認文字&#xff1a; <textarea>白鴿男孩</textarea> <textarea>白鴿男孩</textarea>    2.鼠標點擊文本框&#xff0c;默認文字消失&#xff1a; <textarea οnfοcus”if(value’白鴿男孩’) {value’ ‘}”>白鴿男孩</text…

[裴禮文數學分析中的典型問題與方法習題參考解答]4.5.8

需要全部的解答, 請 http://www.cnblogs.com/zhangzujin/p/3527416.html 設 $f(x)$ 在 $[a,\infty)$ 上可微; 且 $x\to\infty$ 時, $f(x)$ 單調遞增趨于 $\infty$, 則 $$\bex \int_a^\infty \sin f(x)\rd x,\quad \int_a^\infty \cos f(x)\rd x \eex$$ 都收斂. 證明: 由 $$\be…

《PowerShell V3——SQL Server 2012數據庫自動化運維權威指南》——2.13 創建視圖...

本節書摘來自異步社區出版社《PowerShell V3—SQL Server 2012數據庫自動化運維權威指南》一書中的第2章&#xff0c;第2.13節&#xff0c;作者&#xff1a;【加拿大】Donabel Santos&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.13 創建視圖 本方案展…

python刷抖音_用Python生成抖音字符視頻!

抖音字符視頻在去年火過一段時間。 反正我是始終忘不了那段極樂凈土的音樂... 這一次自己也來實現一波&#xff0c;做一個字符視頻出來。 主要用到的庫有cv2&#xff0c;pillow庫。 原視頻如下&#xff0c;直接抖音下載的&#xff0c;妥妥的水印。 不過并不影響本次的操作。 / …

變長參數

轉載自&#xff1a;http://blog.csdn.net/tht2009/article/details/7019635 變長參數 設計一個參數個數可變、參數類型不定的函數是可能的&#xff0c;最常見的例子是printf函數、scanf函數和高級語言的Format函數。在C/C中&#xff0c;為了通知編譯器函數的參數個數和類型可變…

第十七章 我國農業科學技術

農村改革解說&#xff08;專著&#xff09;第十七章 第十七章 我國農業科學技術 1、為什么說科學技術是生產力&#xff1f; 我們說科學技術是生產力&#xff0c;是因為在構成生產力的兩個主要因素中&#xff0c;都包含著科學技術在內。 A、生產力中人的因素是同一定的科學技術緊…

《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一一1.2 選購鏡頭時應注意的事項...

本節書摘來自異步社區出版社《淘寶網開店 拍攝 修圖 設計 裝修 實戰150招》一書中的第1章&#xff0c;第1.2節&#xff0c;作者&#xff1a; 葛存山&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.2 選購鏡頭時應注意的事項 面對如此之多的鏡頭&#xf…

OpenCV中的神器Image Watch

Image Watch是在VS2012上使用的一款OpenCV工具&#xff0c;能夠實時顯示圖像和矩陣Mat的內容&#xff0c;跟Matlab很像&#xff0c;方便程序調試&#xff0c;相當好用。跟VS2012配合使用&#xff0c;簡直就是一款神器&#xff01;讓我一下就愛上它了&#xff01; 下面介紹一些鏈…

python異步_Python通過Thread實現異步

當long函數耗時較長時&#xff0c;需要程序先向下執行&#xff0c;這就需要異步&#xff0c;改寫代碼如下&#xff1a; import _thread import time def long(cb): print (long execute) def fun(callback): time.sleep(5) result long end callback(result) _thread.start_ne…

SAM4E單片機之旅——13、LCD之ASF初步

在Atmel Studio 6中&#xff0c;集成了Atmel Software Framework&#xff08;ASF框架&#xff09;。通過它提供的庫&#xff0c;可以很快速地完成新的項目。 這次的最終目標使用ASF在LCD上顯示出文字“Hello World!”&#xff0c;現階段目標是點亮LCD的背光&#xff0c;學習目標…

《HTML5與CSS3實戰指南》——2.2 基本的HTML5模板

本節書摘來自異步社區《HTML5與CSS3實戰指南》一書中的第2章&#xff0c;第2.2節,作者&#xff1a; 【美】Estelle Weyl , Louis Lazaris , Alexis Goldstein 更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.2 基本的HTML5模板 在您學習HTML5和新技術時&#xff0c;您…

c# Message const

typeTMsg packed recordhwnd: HWND; //窗口句柄message: UINT;//消息常量標識符wParam: WPARAM ;// 32位消息的特定附加信息lParam: LPARAM ;// 32位消息的特定附加信息time: DWORD;//消息創建時的時間pt: TPoint; //消息創建時的鼠標位置end ; 消息中有什么&#xff1f;是否覺…