XML作用


什么是xml?

xml指可擴展標記語言。

xml被設計用來存儲數據,不顯示數據。

XML 需要自行定義標簽,且標簽名稱具有自我描述性。
XML 是 W3C 推薦的數據傳輸存放標准。

XML數據格式主要的用途又有哪些?

程序之間的數據傳輸通訊 程序之間的數據傳輸通訊
PHP語言 <- 快遞100 <- Java語言
配置文件 配置文件config.xml
config.xml -> php語言、java語言、Python語言
存儲數據,充當小型數據庫 存儲數據,充當小型數據庫
data.xml
規范數據格式 規范數據格式,是數據具有結構性,易讀易處理 是數據具有結構性,易讀易處理

XML和HTML的區別: 的區別:
1:html標簽不能自定義,XML只能自定義標簽;
2:html語法要求不嚴格,xml對於語法的要求非常嚴格,標簽必須是閉合的;
3:XML 被設計用來傳輸和存儲數據,其焦點是數據內容。
HTML 被設計用來顯示數據,其焦點是數據的外觀呈現。

xml的基本語法:

XML 的語法規則很簡單,且很有邏輯。

XML 文檔必須有根元素 文檔必須有根元素
根元素是所有其他元素的父元素;

<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>

如上代碼,root就是根元素;

XML 聲明 聲明
<?xml version="1.0" encoding="utf-8"?>
聲明文件是可選部分,如果存在需要放在文檔的第一行;
version :版本號,代表XML使用的版本號
encoding :編碼格式,默認UTF-8
所謂的文檔聲明就是告訴解析器當前文檔格式、版本號以及編碼格式。
1.所有的 所有的 XML 元素都必須是成對閉合標簽 元素都必須是成對閉合標簽

2.非閉合標簽是非法的,解析器將報錯,不無正常解析;

3.XML 標簽對大小寫敏感 標簽對大小寫敏感。

4.XML標簽不允許有交叉嵌套 標簽不允許有交叉嵌套
5.XML標簽名不建議使用特殊字符,盡量只用數字字母下划線 標簽名不建議使用特殊字符,盡量只用數字字母下划線

6.XML 中的注釋 中的注釋
7.在 XML 中編寫注釋的語法與 HTML 的語法一致。

實體引用 實體引用 & 特殊字符 特殊字符
在 XML 中,一些字符擁有特殊的意義。
如果您把字符 "<" 放在 XML 元素中,會發生錯誤,這是因為解析器會把它當作新元素的開始。

&lt來代替 "<" 字符:

在 XML 中,有 5 個預定義的實體引用:

&lt; <
&gt; >
&amp; &
&apos; '
&quot "

xml元素屬性

XML 元素中,也可以隨意添加一個或多個屬性,但是:
屬性值一定要用引號(單引號或雙引號)引起來
屬性名稱的命名規范與元素的命名規范相同
元素中的屬性是不允許重復的

其實,屬性也是用來存儲數據信息的,
沒有什么規矩可以告訴我們什么時候該使用屬性,而什么時候該使用元素。
但實際開發經驗是 在HTML中,屬性用起來很便利,而在 XML 中,應該盡量避免使用屬性。
因為:
一個屬性不能包含多個值(元素可以)
屬性值不能是結構化數據(元素可以)
屬性不容易擴展(為未來的變化)
屬性難以閱讀和維護。
將數據放在屬性中和放在子元素中,目的都是為了傳輸數據,而子元素更加容易被解析;

CDATA:

在瀏覽器中運行以上代碼,會報錯,因為數據中有很多特殊字符,
我們可以使用實體字符替換,但是,數據量太大,導致修改繁瑣且極度困難;
當我們遇到大量特殊字符時,可以使用CDATA將數據包裹;

例如:

<?xml version="1.0" encoding="UTF-8"?>
<strory>
    <title>這是一個傷心的故事</title>
    <d>震驚!!!著名數學家尼古拉斯趙四,卻難解小學考題</d>
    <![CDATA[ 要存放的數據 ]]>
    <con><![CDATA[小學進博士考題1:已知 c<4,d>5,問:c和d那個更好看? ]]> </con>
</strory>

對於內容比較少的情況,我們可以使用實體引用對特殊字符進行直接替換操作。
對於內容比較多的情況,如果文章描述、文章內容等等建議采用CDATA區段。

PHP解析xml文檔:

ML是一種數據傳輸格式,當PHP接收到的數據就是一段XML的時候,PHP提供了一個非常非常強大的類庫,SimpleXML類庫,專門用於實現對XML文檔的解析操作。

XML 解析原理:

① 讀取XML文檔到內存;
② 形成DOM樹結構;
③ 生成SimpleXML對象。

讀取解析成對象:

simplexml_load_file('xml_path')方法:

讀取節點的屬性:

attributes()方法獲取節點屬性

使用 使用SimpleXML增加節點:

//創建添加子節點

addChild('xxx','123'); 第二個屬性可以寫節點值

//創建添加子節點

addAttribute('xx');

asXML('xx.xml');//保存數據進XML文件,沒有文件,則創建;

~~~~~~~~~~~~~結

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM