1. 程式人生 > >xml程式語言的學習乾貨

xml程式語言的學習乾貨

Xml文件的學習 

Xml 指的是可擴充套件標記語言(extensible markup language),基本上現在的java主流框架都使用xml來傳輸和儲存資料,是非常重要的一門程式語言(至少在程式設計領域非常的重要)。

 

基本的xml語言就不多介紹,主要記錄一些非常重要和關鍵的點。

 

  1. Xml程式設計文件用於儲存和傳輸資料的,這一點和json文件有異曲同工之妙。
  2. Xml文件有巢狀的樹形結構。
  3. Xml文件基本的構成是元素,其中每個元素包括開始和閉合標籤,這點和html類似,但是xml文件和html文件是有本質上的區別的,html是顯示型的程式語言,xml是儲存傳輸型語言,多用於資料傳輸和儲存的資訊配置,並且xml文件可以自行定義標籤,而html不能。
  4. Xml文件中元素有屬性,但是具有多個屬性就使用樹結構,單個屬性可以直接標識。例如:<file type="gif">computer.gif</file>。
  5. Xml文件是有一定的規範,並且一旦出錯就不在執行,這一點也是和html不一樣,具體不在詳述。

 

下面的重頭戲來了,怎樣使用xml文件?

這裡只記錄一下在主流瀏覽器中的使用,一般的主流瀏覽器都包含XMLHttpRequest物件,一般IE5和IE6使用ActiveXObject物件,這個物件可厲害了,可以解析xml文件並讀取xml中的元素資料資訊,我們一般使用呢就是用的js了。

例如下面的程式碼:

<html>
<body>
<h1>W3Schools Internal Note</h1>
<div>
<b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
</div>



<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","note.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>

</body>
</html>

結果:

說白了就是解析xml檔案中的元素資訊顯示,這樣的話,在比如說像ssm一樣的java主流框架的使用就方便很多,在一定程度上還實現了框架的解耦,實現前後端的分離,這一點和json檔案有相似之處,特別是在前端頁面的應用上更加的方便,同時,作為一個程式設計師,檔次就不一樣了,面子上也掛得住。

 

下面呢,記錄一下這個xml檔案的名稱空間,見過一般java框架中的xml檔案的小夥伴都知道,開頭總有一大堆看不懂的東西,類似於:

xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:tx="http://www.springframework.org/schema/tx"

下面請允許我娓娓道來:

Xml名稱空間是提供避免元素命名衝突的方法,前面說道,xml檔案的標籤是由開發者定義的,所以就會出現多種衝突的元素存在,可以使用字首來避免衝突,比如:

<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

但是這樣比較麻煩,我們可以採用xmlns屬性來宣告,格式為:xmlns:字首=”URL”(URL:統一資源識別符號 uniform resource identifier)。當然,可以使用預設的名稱空間,格式為:xmlns:”namespaceURL”。

當然,像&,<等字元是元素內容中的非法字元,xml文件中跳過編譯可以使用CDATA標識:

如:<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>

 

下面說一下這xml dom :

DOM 就是文字物件,其中這個物件可以對於xml文件進行解析操作,前面提到過,但是前面沒提到的是它還可以實現xml文件元素的增,刪。獲取元素屬性,值,比較安逸,具體感興趣的小夥伴可以嘗試一下。

 

下面總結一下:

XML 可用於交換、共享和儲存資料。

XML 文件形成 樹狀結構,在"根"和"葉子"的分支機構開始的。

XML 有非常簡單的 語法規則。帶有正確語法的 XML 是"形式良好"的。有效的 XML 是針對 DTD 進行驗證的。

XSLT 用於把 XML 轉換為其他格式,比如 HTML。

所有現代的瀏覽器有一個內建的 XML 解析器,可讀取和操作 XML。

DOM(Document Object Model)定義了一個訪問 XML 的標準方式。

XMLHttpRequest 物件提供了一個網頁載入後與伺服器進行通訊的方式。

XML 名稱空間提供了一種避免元素命名衝突的方法。

CDATA 區域內的文字會被解析器忽略。

我們的 XML 例項也代表了這個 XML 教程總結。

參考文獻:

菜鳥教程 xml教程 有不對之處 望指正 僅僅做此記錄 怕忘記:http://www.runoob.com/xml/xml-summary.html