XML快速入門

1、XML數(shù)據(jù)格式用途

1、用作配置文件:數(shù)據(jù)庫配置、項(xiàng)目配置、應(yīng)用程序配置等,例如使用Netbeans創(chuàng)建項(xiàng)目時(shí) 會(huì)自動(dòng)生成一個(gè)nbproject目錄 該目錄中使用了xml文件存儲(chǔ)項(xiàng)目相關(guān)信息。

2、xml格式的數(shù)據(jù)具有通用性,絕大多數(shù)語言均支持對(duì)XML數(shù)據(jù)的解析 因此被用于不同語言之間 交換數(shù)據(jù)。

3、作為開放平臺(tái)接口返回的數(shù)據(jù) 比如微信
2、XML數(shù)據(jù)文件格式

文件擴(kuò)展名: .xml

<?xml version="1.0" encoding="UTF-8"?>
<fu>
    <title>
        1、XML支持且必須是用戶自定義標(biāo)簽
        2、XML標(biāo)簽沒有顯示樣式 使用不同的標(biāo)簽是為了區(qū)分不同類型的數(shù)據(jù)(區(qū)分?jǐn)?shù)據(jù))
        3、XML語法嚴(yán)謹(jǐn),標(biāo)簽必須關(guān)閉
        4、XML標(biāo)簽區(qū)分大小寫
        5、XML標(biāo)簽只能嵌套(<p><b>some text</b></p>) 不能交叉(<p><b></p></b>)
        6、XML標(biāo)簽可以有屬性 但屬性必須有值 且用單雙引號(hào)括起來 否則解析出錯(cuò)
        7、當(dāng)XML標(biāo)簽中的內(nèi)容含有特殊字符(<、>、’、”)時(shí) 為避免解析時(shí)的歧義 需要使用字符實(shí)體替代(&lt;$gt;&amp;&copy;),當(dāng)內(nèi)容較多時(shí) 可以將它們放入CDATA(character data)段中 表示這是一段字符數(shù)據(jù) 不要當(dāng)成標(biāo)簽來解析。
        <item>&lt;&lt;靜夜思&gt;&gt;</item>
        <content>
            <![CDATA[<p>窗前明月光</p>
            <p>疑是地上霜</p>
            <p>舉頭望明月</p>
            <p>低頭思故鄉(xiāng)</p>
            ]]>
        </content>
    </title>
</fu>

3、PHP解析XML

1、SimpleXMLElement php內(nèi)置的一個(gè)工具用來解析xml格式的數(shù)據(jù),舉例

創(chuàng)建test.php文件

<?php
                $data = "<?xml version='1.0' encoding='UTF-8'?>
                    <root>
                        <title data='靜夜思'>
                            <content>
                                <![CDATA[<p>窗前明月光</p>
                                <p>疑是地上霜</p>
                                <p>舉頭望明月</p>
                                <p>低頭思故鄉(xiāng)</p>
                                ]]>
                            </content>
                        </title>
                        <title data='獨(dú)坐敬亭山'>
                            <content>
                                <![CDATA[<p>眾鳥高飛盡</p>
                                <p>孤云獨(dú)去閑</p>
                                <p>相看兩不厭</p>
                                <p>只有敬亭山</p>
                                ]]>
                            </content>
                        </title>
                    </root>";
                $obj = new 1、SimpleXMLElement($data);
                //$obj = simplexml_load_string($data);

                //$obj = simplexml_load_file(1.xml);  
                //相當(dāng)于$data = file_get_contents(1.xml); $obj = simplexml_load_string($data);
                //var_dump($obj);//$obj 就指向root根
                echo "第一首詩的名字是" . $obj->title[0]->attribtes()->data;

4、xpath節(jié)點(diǎn)查詢,返回集合形式;
1、使用/設(shè)置絕對(duì)路徑的表達(dá)式

$path = "/root/title";
$result = $obj->xpath($path);
var_dump($result); //返回兩個(gè)title集合,可以通過下標(biāo)讀取

2、使用//全局查找 不考慮位置

$path = "http://title";
$result = $obj->xpath($path);
var_dump($result);

3、使用.. 選取父節(jié)點(diǎn)

$path = "http://title..";

4、使用[]過濾節(jié)點(diǎn)

$path = "http://title[1]";

5、使用@過濾屬性

$path = "http://user[@data='靜夜思']";

5、xml數(shù)據(jù)增刪改

添加

            $node->addChild(); 向node節(jié)點(diǎn)添加子節(jié)點(diǎn)
            $obj->addChild("blackground","你是我的小蘋果");
            $obj->saveXML("1.xml");
            
            $content = $obj->xpath("http://title");
            $content[0]->addChild("foo","some text");
            $obj->saveXML("1.xml");

刪除

            unset($obj->content->foo); 刪除foo數(shù)據(jù)
            $obj->saveXML("1.xml");

修改 重新復(fù)制

            $obj->author = "李太白";  重新復(fù)制即可
            $obj->saveXML=("1.xml");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,300評(píng)論 25 708
  • 秋蟬煩躁地唱著, 風(fēng)扇懶散地吹, 而我在寫字臺(tái)前發(fā)呆, 今天,我不想寫。 王者榮耀勾著小指頭, 他挑逗我, 權(quán)力的...
    卿瘋閱讀 732評(píng)論 0 0
  • 19.01_異常(異常的概述和分類) A:異常的概述:異常就是Java程序在運(yùn)行過程中出現(xiàn)的錯(cuò)誤。 B:異常的分類...
    苦笑男神閱讀 339評(píng)論 0 1

友情鏈接更多精彩內(nèi)容