成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

XML學習筆記--背誦版

ssshooter / 3390人閱讀

摘要:聲明語句是可選部分如果存在需要放在文檔的第一行所謂的文檔聲明就是告訴解析器當前文檔格式版本號以及編碼格式。所有的元素都必須是成對閉合標簽非閉合標簽是非法的,解析器將報錯,不無正常解析標簽對大小寫敏感必須頭尾標簽一致。

前言

一直想系統(tǒng)性的學XML,就沒時間學,今晚抽出幾個小時時間學完了XML。過幾天再過來看看,背一背應該就差不多,記得東西較多,沒什么難理解的。

XML數(shù)據(jù)傳輸格式 第一章 XML概述 1.1 引入

當我們看到 XML 標準突飛猛進的開發(fā)進度,以及大批的軟件開發(fā)商采用這個標準的日新月異的速度時,真的是不禁感嘆這真是令人嘆為觀止。

目前,XML 在 Web 中起到的作用不會亞于一直作為 Web 基石的 HTML。

XML 無所不在。XML 是各種應用程序之間進行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ?,并且在信息存儲和描述領域變得越來越流行。

XML的主要用途有哪些?

1.程序之間的數(shù)據(jù)傳輸通訊(可以是跨語言傳輸)

2.配置文件config.xml

3.存儲數(shù)據(jù),充當小型數(shù)據(jù)庫

優(yōu)勢:

規(guī)范數(shù)據(jù)格式,是數(shù)據(jù)具有結(jié)構(gòu)性,易讀易處理
1.2 什么是XML

XML 指可擴展標記語言(eXtensible Markup Language),被設計用來傳輸和存儲數(shù)據(jù);XML 需要自行定義標簽,且標簽名稱具有自我描述性;XML 是 W3C 推薦的數(shù)據(jù)傳輸存放標準。

XML和HTML的區(qū)別?

1.html標簽不能自定義,XML只能自定義標簽。

2.html語法要求不嚴格,xml對于語法的要求非常嚴格,標簽必須是閉合的。

3.XML 被設計用來傳輸和存儲數(shù)據(jù),其焦點是數(shù)據(jù)內(nèi)容;HTML 被設計用來顯示數(shù)據(jù),其焦點是數(shù)據(jù)的外觀呈現(xiàn)。

第二章 XML的基本語法 2.1 語法規(guī)則

1.XML 文檔必須有根元素,根元素是所有其他元素的父元素。

2.XML聲明語句是可選部分,如果存在需要放在文檔的第一行

所謂的文檔聲明就是告訴解析器當前文檔格式、版本號以及編碼格式。

3.所有的 XML 元素都必須是成對閉合標簽;非閉合標簽是非法的,解析器將報錯,不無正常解析.

4.XML 標簽對大小寫敏感,必須頭尾標簽一致。

5.XML標簽不允許有交叉嵌套,也就是父子標簽關系不能交叉嵌套。

6.XML標簽名不要使用特殊字符,盡量只用數(shù)字字母下劃線。

7.XML 中的注釋與HTML中注釋一個語法格式。

8.實體引用 & 特殊字符

在 XML 中,一些字符擁有特殊的意義,如果您把字符 "<" 放在 XML 元素中,會發(fā)生錯誤,這是因為解析器會把它當作新元素的開始46 < 100 這樣會產(chǎn)生 XML 錯誤;

為了避免錯誤,要用實體引用來代替特殊字符,格式與HTML中的實體字符用法一樣

實體引用 實體字符 含義
< < 小于-less than
> > 大于-greater than
& & 與--ampersand
&apos " 單引號-apostrophe
" " 雙引號-quotation mark
2.2 元素屬性

XML 元素中,可以隨意添加一個或多個屬性,前提是

屬性值一定要用引號(單引號或雙引號)引起來

屬性名稱的命名規(guī)范與元素的命名規(guī)范相同

元素中的屬性是不允許重復的

屬性也是用來存儲數(shù)據(jù)信息的但實際開發(fā)經(jīng)驗是 在HTML中,屬性用起來很便利,而在 XML 中,應該盡量避免使用屬性,原因是

1.一個屬性不能包含多個值(元素可以)

2.屬性值不能是結(jié)構(gòu)化數(shù)據(jù)(元素可以)

3.屬性不容易擴展(為未來的變化)

4.屬性難以閱讀和維護。

總結(jié):將數(shù)據(jù)放在屬性中和放在子元素中,目的都是為了傳輸數(shù)據(jù),而子元素更加容易被解析,更好維護,更便于引用。

2.3 CDATA

要處理大量特殊字符時,不能再用實體引用來處理了(主要是太麻煩,工作量大)可以使用CDATA將數(shù)據(jù)包裹就可以按原格式輸出。

格式:5,問:c和d那個更好看? ]]> 

實體引用和CDATA的使用時機:

1.對于內(nèi)容比較少的情況,可以使用實體引用對特殊字符進行直接替換操作。

2.對于內(nèi)容比較多的情況,建議采用CDATA區(qū)段。

第三章 使用PHP解析XML文檔
在PHP5版本以后,其提供了一個非常非常強大的類庫,SimpleXML類庫,專門用于實現(xiàn)對XML文檔的解析操作。PHP中使用這個類庫來處理XML數(shù)據(jù)。
3.1 XML解析原理

XML在解析時一共要經(jīng)歷三個步驟:

讀取XML文檔到內(nèi)存

2.形成DOM樹結(jié)構(gòu)(DOM樹可以簡單理解文檔的父子結(jié)構(gòu))

3.生成SimpleXML對象

3.2 SimpleXML類庫

語法:simplexml_load_file("test.xml");



    
    aklman
        20
            
    
    
        ak
        22
    
$xml=simplexml_load_file("test.xml");//引入文件并讀取
var_dump($xml);//輸出,輸出個格式就是一個對象
1.如果當前讀取的節(jié)點是對象就通過->來進行訪問;

2.如果當前讀取的節(jié)點是數(shù)組就通過[]來進行訪問;

3.3 遍歷XML數(shù)據(jù)
1.foreach循環(huán)遍歷
$xml=simplexml_load_file("test.html);
foreach($xml->man as $v){
    echo "Name:".$v->name."Age:".$v->age."
"; }
2.for循環(huán)遍歷
$xml=simplexml_load_file("test.html);
$length=count($xml);
for($i=0;$i<$length;$i++){
    echo $xml->man[$i]->name;
}
讀取節(jié)點的屬性時XML屬性要加到父節(jié)點,PHP才能解析
$xml=simplexml_load_file("test.xml");
echo $xml->man[1]->attributes()->sex;
//attributes()方法是用來獲取節(jié)點屬性,
//內(nèi)存中節(jié)點屬性存放在attributes中,它是一個以為數(shù)組,可以使用attributes()方法獲取
3.4 使用SImpleXML增加節(jié)點
$xml=simplexml_load_file("test.html);
$man=
//創(chuàng)建添加子節(jié)點
$man = $xml->addChild("man");
//為節(jié)點添加屬性
$man->addAttribute("sex","女");
//創(chuàng)建添加子節(jié)點及節(jié)點值
$man->addChild("name","aklman");
$man->addChild("age","23");
var_dump($xml);//打印,已經(jīng)添加到內(nèi)存
$xml->asXML("test1.xml");//保存數(shù)據(jù)進XML文件,沒有文件,則創(chuàng)建;
3.5 案例
查詢手機歸屬地案例,數(shù)據(jù)來源聚合網(wǎng)

//接受前臺提交的數(shù)據(jù)
$tel = $_GET["num"];
//組裝請求地址
$url = "http://v.juhe.cn/telephone/index?telephoneNumber=".$tel."&dtype=xml&format=&key=810c3b2c488bc37d5f521196d8799a7211";//地址已經(jīng)打亂了,需要從聚合網(wǎng)購買
//發(fā)送請求并接受返回的數(shù)據(jù)
$s = file_get_contents($url);
// echo $s; //打印返回的XML數(shù)據(jù)
//使用 simplexml_load_string 函數(shù)讀入并解析XML數(shù)據(jù)
$xml = simplexml_load_string($s);
//找到并打印我們想要的數(shù)據(jù)
echo "歸屬?。?.$xml->result->place->city111."
"; echo "歸屬城市:".$xml->result->place->city."
";
第四章 Xpath語言 4.1 概述
XPath是一門在 XML 文檔中查找信息的語言,XPath可用來在 XML 文檔中對元素和屬性進行遍歷。
4.2 使用及語法

使用注意事項:

1.使用絕對路徑實現(xiàn)數(shù)據(jù)查詢
$xml = simplexml_load_file("user.xml");
//按節(jié)點的絕對路徑查找
$data = $xml->xpath("/user/man/name");//返回數(shù)組
foreach($data as $v){
    echo $v."
"; } /* *如果路徑以斜線 / 開始, 那么該路徑就表示到一個元素的絕對路徑, *絕對路徑實現(xiàn)數(shù)據(jù)查詢必須一級一級的查詢下去,不能越級。 */
2.使用相對路徑實現(xiàn)數(shù)據(jù)查詢
$xml = simplexml_load_file("user.xml");
//按節(jié)點的相對路徑查找
$data = $xml->xpath("http://name");//返回數(shù)組
foreach($data as $v){
echo $v."
"; } /* *如果路徑以雙斜線 // 開頭, 則表示選擇文檔中所有滿足雙斜線//之后規(guī)則的元素(無論層級關系) */
3.使用*來匹配所有節(jié)點
$xml = simplexml_load_file("user.xml");
//匹配man節(jié)點下的所有元素節(jié)點。
$data = $xml->xpath("http://man/*");//返回數(shù)組
foreach($data as $v){
echo $v."
"; }
4.使用[]方括號的形式來實現(xiàn)數(shù)據(jù)查詢
$xml = simplexml_load_file("user.xml");
//匹配man節(jié)點下的最后一個節(jié)點。
$data = $xml->xpath("http://man[last()]");//返回數(shù)組
var_dump($data);
echo $data[0]->name;
//man[1] : 獲取第一個man元素
//man[last()]:獲取最后一個man元素
//man[age > 200] :獲取age>200的man節(jié)點
/*
*方塊號里的表達式可以進一步的指定元素, 其中數(shù)字表示元素在選擇集里的位置
*默認從1開始,而last()函數(shù)則表示選擇集中的最后一個元素,括號內(nèi)還可以放置表達式
*/
5.使用屬性來獲取元素
$xml = simplexml_load_file("user.xml");
//匹配man節(jié)點下含有sex屬性的節(jié)點。
$data = $xml->xpath("http://man[@sex]");//返回數(shù)組
var_dump($data);
echo $data[0]->name;
參考資料

W3school
菜鳥教程
XML編程與應用教程(第2版)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28398.html

相關文章

  • XML學習筆記--背誦

    摘要:聲明語句是可選部分如果存在需要放在文檔的第一行所謂的文檔聲明就是告訴解析器當前文檔格式版本號以及編碼格式。所有的元素都必須是成對閉合標簽非閉合標簽是非法的,解析器將報錯,不無正常解析標簽對大小寫敏感必須頭尾標簽一致。 前言 一直想系統(tǒng)性的學XML,就沒時間學,今晚抽出幾個小時時間學完了XML。過幾天再過來看看,背一背應該就差不多,記得東西較多,沒什么難理解的。 XML數(shù)據(jù)傳輸格式 第一...

    Ku_Andrew 評論0 收藏0
  • 正則表達式JavaScript本回顧筆記背誦

    摘要:以指定模式分割字符串,返回結(jié)果為數(shù)組。為什么牢記,有什么用看代碼查找連續(xù)的相同的數(shù)字或者內(nèi)容是用子表達式只有字表達是中匹配的內(nèi)容才保存到緩存,這種行為叫捕獲。 前言 正則表達式之所以強大,是因為其能實現(xiàn)模糊匹配,精確匹配沒有任何價值。 正則表達式學習筆記 第一章 JavaScript原型對象與原型鏈 1.1 正則表達式概念 RegExp:是正則表達式(regular expressio...

    CoXie 評論0 收藏0
  • 筆記:隱式轉(zhuǎn)換規(guī)則

    摘要:比較運算符,操作數(shù)都不是類型時操作數(shù)中只有類型和類型,或者其中有一個是轉(zhuǎn)換為運算條件運算轉(zhuǎn)換為號運算,其中一個操作符為字符串比較運算,其中一個操作符為字符串 要求:學習,并背誦全文 原始值 類型 Undefined Null String Boolean Number 值 undefined null 所有字符串 true false 所有數(shù)字/NaN 引用類型 Objec...

    niuxiaowei111 評論0 收藏0
  • Servlet學習筆記

    摘要:學習筆記工作以來就一直在用各種框架,比如,這些,向外提供接口都很方便,但是一直在想它的內(nèi)部是怎樣對外暴露服務的,正好之前學習基礎的時候也沒好好看這塊,抽個時間學習總結(jié)一下,也能更好的理解掌握現(xiàn)在的框架。 Servlet學習筆記 工作以來就一直在用各種web框架,比如SpringMVC,Spring Cloud這些,向外提供接口都很方便,但是一直在想它的內(nèi)部是怎樣對外暴露服務的,正好之前...

    kohoh_ 評論0 收藏0
  • Java學習必備書籍推薦終極!

    摘要:實戰(zhàn)高并發(fā)程序設計推薦豆瓣評分書的質(zhì)量沒的說,推薦大家好好看一下。推薦,豆瓣評分,人評價本書介紹了在編程中條極具實用價值的經(jīng)驗規(guī)則,這些經(jīng)驗規(guī)則涵蓋了大多數(shù)開發(fā)人員每天所面臨的問題的解決方案。 很早就想把JavaGuide的書單更新一下了,昨晚加今天早上花了幾個時間對之前的書單進行了分類和補充完善。雖是終極版,但一定還有很多不錯的 Java 書籍我沒有添加進去,會繼續(xù)完善下去。希望這篇...

    Steve_Wang_ 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<