PHP操作XML數(shù)據(jù)

  • 什么是XML

  1. XML是可擴(kuò)展性標(biāo)記語(yǔ)言
  2. 設(shè)計(jì)宗旨是為了傳輸數(shù)據(jù)
  3. XML標(biāo)簽沒(méi)有被預(yù)定義,需要自行定義
  • XML的用途

    1. xml可以當(dāng)做配置文件
    2. xml可以當(dāng)小型數(shù)據(jù)庫(kù)
    3. xml是跨平臺(tái)的語(yǔ)言,用于各個(gè)語(yǔ)言之間的數(shù)據(jù)交互
  • XML語(yǔ)法規(guī)范

    1. 聲明一個(gè)處理指令<?xml version='1.0' encoding='utf-8'?>
    2. 文檔為樹(shù)狀結(jié)構(gòu),只能有一個(gè)根目錄
    3. 標(biāo)簽必須合法,標(biāo)簽必須閉合(單雙標(biāo)簽),大小寫一致,不能交叉。
    4. 屬性必須有值,屬性值必須有引號(hào)
    5. 特殊符號(hào)使用符號(hào)實(shí)體(單引號(hào)'雙引號(hào)"空格 &符號(hào)&大于號(hào)<小于號(hào)>)
    6. 有特殊符號(hào)的大段內(nèi)容使用<![CDATA[內(nèi)容]]>表示

如下所示:

<?xml version='1.0' encoding='utf-8'?>
<student>
     <student1>
          <name>xiaoming</name>
          <age>24</age>
          <style hobby="girl" />
     </student1>
     <student2>
           <name>xiaohong</name>
           <age>24</age>
           <style hobby="play" />
     </student2>
</student>
  • javascript操作xml

  • 創(chuàng)建空的xml對(duì)象
try{
     xmlDoc=new ActiveXObject('Microsoft.XML');//IE創(chuàng)建xmlDoc
}catch(e){
     try{
          xmlDoc=document.implementation.createDocument('','',null);//opera,mozilla,firefox等創(chuàng)建xmlDoc
     }catch(e){
          alert(e.message);
     }   
}
  • 加載xml文件
try{
     xmlDoc.async=false;//關(guān)閉異步加載
     xmlDoc.load=('xml_goods.xml');
     //document.write('已經(jīng)加載好了');
}catch(e){
     alert(e.message);
}
  • 獲取xml文件的節(jié)點(diǎn)
        var students = xmlDoc.getElementsByTagName('student1');//取到所有標(biāo)簽為student1的節(jié)點(diǎn)
        var student = students[0];//取到第一個(gè)studnet1
        var studentnote = student.children;//取到第一個(gè)student的所有元素子節(jié)點(diǎn)
        var name = studentnote[0].childNodes[0].nodeValue;//取到第一個(gè)節(jié)點(diǎn)name的第一個(gè)節(jié)點(diǎn)的值
        window.alert(name);   
  • 用PHP操作xml

  • xmlDOM方法
  • 實(shí)例化一個(gè)xmldom對(duì)象

$xmlDoc = new DOMDocument('1.0','utf-8');
  • 加載xml文件
$xmlDoc->load('./student.xml');//加載本地xml文件
$xmlDoc->loadXML('xml字符串');//加載xml字符串
  • 通過(guò)getElementsByTagName('')方法獲取DOMNodeList對(duì)

$xmlDoc->getElementsByTagName('name');

  • 通過(guò)調(diào)用DOMNodeList里的item()方法得到DOMElement對(duì)象

$xmlDoc->getElementsByTagName('name')->item(0);

  • 通過(guò)nodeValue屬性,來(lái)獲取節(jié)點(diǎn)的值

$xmlDoc->getElementsByTagName('name')->item(0)->nodeValue;

  • simplexml方法
  • 獲取xml對(duì)象

$simplexml = simplexml_load_file('./jing.xml');
//或者
$xml = file_get_contents('jing.xml'); //獲取字符串
$simplexml = simplexml_load_string($xml);
  • 調(diào)用對(duì)象的屬性值從而獲得xml標(biāo)簽值

$simplexml->stu[0]->sex;

作者:jingks
此為原創(chuàng)文章,請(qǐng)勿用在商業(yè)用途,轉(zhuǎn)載請(qǐng)標(biāo)明作者。

最后編輯于
?著作權(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),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • HTML標(biāo)簽解釋大全 一、HTML標(biāo)記 標(biāo)簽:!DOCTYPE 說(shuō)明:指定了 HTML 文檔遵循的文檔類型定義(D...
    米塔塔閱讀 3,540評(píng)論 1 41
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • 1. XML簡(jiǎn)介 以下內(nèi)容來(lái)自于http://www.w3school.com.cn/xml 基本知識(shí) XML 和...
    WebSSO閱讀 2,094評(píng)論 1 7
  • 認(rèn)真的人自帶光環(huán),在你不經(jīng)意間,他們借著那團(tuán)光,留下一霎的閃亮,常常穿越月月年年,那閃爍還在。 B城漂泊的日子里,...
    吐蜜閱讀 157評(píng)論 0 1
  • 先坐汽車一小時(shí),倒三輪車十五分鐘,到了火車站。 這是我們縣城的火車站,但是它并沒(méi)有在縣城,而是在離縣城20公里的一...
    沙糖閱讀 619評(píng)論 0 1

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