亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 開(kāi)發(fā) > XML > 正文

xml基礎(chǔ)學(xué)習(xí)筆記04

2020-03-22 18:23:11
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  •   今天繼續(xù)xml學(xué)習(xí),主要是:SimpleXML快速解析文檔、xml與數(shù)組相互轉(zhuǎn)換 。博客中只是簡(jiǎn)單的做一個(gè)學(xué)習(xí)記錄、積累。更加詳細(xì)的使用方法,可以查看php手冊(cè)

      1、SimpleXML快速解析文檔

        前面的三篇博客中提到的主要是DOM解析XML文檔,我們?cè)谑褂玫倪^(guò)程中可以明顯的感覺(jué)到DOM解析雖然很強(qiáng)大,但是步驟繁瑣。下面我們說(shuō)一種相對(duì)簡(jiǎn)單的XML解析,

        SimpleXML解析xml文件非常簡(jiǎn)單,因?yàn)樗淮涡园褁ml文件解析成一個(gè)對(duì)象

        還是和以前一樣,程序中的代碼注釋進(jìn)行了詳細(xì)的說(shuō)明

        

     1 <?php 2 /** 3  * 37集、用SimpleXML快速解析文檔 4  * 知識(shí)點(diǎn):1、SimpleXML 5  *           2、Xpath 6  * SimpleXML解析xml文件非常簡(jiǎn)單,因?yàn)樗淮涡园褁ml文件解析成一個(gè)對(duì)象  7  */ 8 // simplexml_load_file() 從文件載入xml文檔 9 $simxml = simplexml_load_file('./37.xml');10 // 輸出這個(gè)對(duì)象,我們看到如圖1 所示的一個(gè) SimpleXMLElement Object,11 // 可以看出SimpleXML將xml文件解析成了一個(gè)包含對(duì)象和數(shù)組的混合12 //print_r($simxml);13 14 // 找到 title 是 路遙-平凡的世界 并輸出15 echo $simxml->book[1]->title;16 echo '<br />';17 // 看看bookstore下有幾本書(shū),可是使用simplexml下面的count()方法18 echo $simxml->count();19 // 如圖2 我們看到正確的得到了我們期望的結(jié)果20 echo '<br />';21 // 查看每本書(shū)中用幾個(gè)子元素22 23 $sons = $simxml->children();24 foreach ($sons as $key => $html' target='_blank'>value) {25     echo '分別有'.$value->count().'個(gè)子元素:'.$value->getName().'<br />';26 }27 28 ?>

    輸出截圖

      2、38集、xml與數(shù)組相互轉(zhuǎn)換

      

      1 <?php  2 /**  3  *   4  * @authors wxb (http://www.cnblogs.com/wxb0328/)  5  * @date    2014-10-06 23:00:19  6  *   7  * 38集、xml與數(shù)組相互轉(zhuǎn)換  8  *   9  */ 10  11 $simxml = simplexml_load_file('./38.xml'); 12  13 //print_r($simxml); 14 /** 15  * 上面的是37集中開(kāi)頭SimpleXML解析開(kāi)頭說(shuō)過(guò)的,我們可以看到SimpleXML的解析,一個(gè)SimpleXMLElement Object, 16  * 對(duì)象中既有對(duì)象又有數(shù)組。比較混亂,一會(huì)使用->,一會(huì)又使用[],不利于我們運(yùn)用,現(xiàn)在將其轉(zhuǎn)換為數(shù)組 17  */ 18 /** 19  * 現(xiàn)在我們考慮怎樣轉(zhuǎn)換? 20  * 我們可以看到: 21  *        對(duì)象,用 屬性名->屬性值        存儲(chǔ)變量 22  *              用 對(duì)象名->屬性名 調(diào)用變量值 23  *        數(shù)組,用 鍵名 => 鍵值        存儲(chǔ)變量 24  *              用 數(shù)組[鍵名]        調(diào)用變量值 25  *        我們完全可以將一個(gè)對(duì)象看成 一個(gè)關(guān)聯(lián)數(shù)組 26  * 有了上面的理解,我們這個(gè)xml轉(zhuǎn)數(shù)組就有了思路 27  * 1、我們先使用array 強(qiáng)制轉(zhuǎn)換對(duì)象為數(shù)組,但是強(qiáng)制轉(zhuǎn)換無(wú)法只能的將你的對(duì)象中的對(duì)象再轉(zhuǎn)為數(shù)組,它只能夠轉(zhuǎn)換當(dāng)前給定的數(shù)組 28  * 2、基于1的分析,我們考慮寫(xiě)一個(gè)方法,這個(gè)方法就是將對(duì)象強(qiáng)制轉(zhuǎn)換為數(shù)組 29  * 3、在這個(gè)方法中我們使用is_array() 判斷 如果是數(shù)組就不用轉(zhuǎn)換,如果不是數(shù)組就轉(zhuǎn)換 30  * 4、然后我們遞歸的調(diào)用這個(gè)方法 31  * 好了,思路有了!現(xiàn)在開(kāi)始做 32  */ 33  function XmlToArr($simpleXml) { 34      /* 35      這里是十八哥在視屏中的實(shí)例,如圖3  36      $arr = (array) $simpleXml; 37     foreach ($arr as $key => $value) { 38         if($value instanceof SimpleXMLElement || is_array($value)){ 39             $arr[$key] = XmlToArr($value); 40         } 41     } 42     */ 43     /* 44     * 在十八個(gè)的實(shí)例中我發(fā)現(xiàn),我發(fā)現(xiàn)我們要判斷并且轉(zhuǎn)換的不光是xml的對(duì)象,在數(shù)組的情況下也需要查看數(shù)組是否是二維的, 45     * 如果是二維數(shù)組我們也需要繼續(xù)遞歸調(diào)用方法,轉(zhuǎn)換。 46     * 看到這里,我們上面的的思路3就是有錯(cuò)誤的,我們不能只是簡(jiǎn)單的判斷是數(shù)組就不轉(zhuǎn)化了,但是,我們可以這樣做,當(dāng)這個(gè) 47     * 數(shù)組是一維數(shù)組的時(shí)候,就不需要轉(zhuǎn)化了,但是怎樣判斷這個(gè)數(shù)組是一維數(shù)組? 48     * 雖然這里是可以用程序判斷的,但是要自己寫(xiě),php并沒(méi)有提供特定的函數(shù)方法。 49     * 但是我們可以發(fā)現(xiàn),當(dāng)時(shí)一維數(shù)組時(shí),數(shù)組能的值都是標(biāo)量: 50     * 標(biāo)量變量是指那些包含了 integer、float、string 或 boolean的變量,而 array、object 和 resource 則不是標(biāo)量。  51     * 基于這個(gè)思路,修改函數(shù)如下: 52     * 判斷如果是一個(gè)標(biāo)量,此時(shí)我們已經(jīng)到了一個(gè)數(shù)組的值的部分,那我們返回這個(gè)值給遞歸調(diào)用里面的$arr[$key]($arr[$key] = XmlToArr($value);) 53      */ 54      if(is_scalar($simpleXml)) { 55          return $simpleXml; 56      }else { 57          //如果不是標(biāo)量,那此時(shí)這個(gè)$simpleXml 肯定是array、object 和 resource 其中一個(gè),但是在xml中不可能是resource了 58          // 無(wú)論你是array還是object,統(tǒng)統(tǒng)強(qiáng)制轉(zhuǎn)化 59          $arr = (array) $simpleXml; 60          // 循環(huán)這個(gè)數(shù)組,然后遞歸調(diào)用這個(gè)海曙 61         foreach ($arr as $key => $value) { 62         $arr[$key] = XmlToArr($value); 63         } 64      } 65      66     return $arr; 67 } 68 // 輸出到頁(yè)面,我們可以看到如圖4,結(jié)果是完全一樣的 69 print_r(XmlToArr($simxml)); 70  71 /***************************************************** 72     現(xiàn)在我們?cè)賹?shù)組轉(zhuǎn)化為xml 73 *****************************************************/ 74 // 首先我們定義這個(gè)數(shù)組 75  76                      77 $xmlArr = Array( 78     'title' => '路遙-平凡的世界', 79     'price' => 43, 80     'comment' => array( 81             0 => 'good book', 82             1 => 'very help', 83             2 => 'I think the book is best' 84         ) 85 ); 86 // 數(shù)組轉(zhuǎn)化為xml 方法 87 function arrToxml($arr,$node = null) { 88     if ($node === null) { 89         $sx = new SimpleXMLElement("<?xml version='1.0' encoding='utf-8' ?><bookstore></bookstore>"); 90     }else{ 91         $sx = $node; 92     } 93      94     foreach ($arr as $key => $value) { 95         if (is_scalar($value)) { 96             /* 97             $sx->addChild($key,$value); 98             上面這種輸出雖然也成功的看到了,但是xml抱錯(cuò)了(如圖5),原因是xml的標(biāo)簽,節(jié)點(diǎn)不能以數(shù)字開(kāi)頭 99             下面我們簡(jiǎn)單的做個(gè)判斷,然后是數(shù)字的我們給拼接一個(gè)字母前綴100             成功輸出(如圖6)101             */102 103             if(is_numeric($key)) {104                 $sx->addChild('comm_'.$key,$value);105             }else{106                 $sx->addChild($key,$value);107             }108             109         }else {110             $tmpNode = $sx->addChild($key);111             arrToxml($value,$tmpNode);112         }113     }114     return $sx->saveXML();115 }116 header("content-type:text/xml");117 echo arrToxml($xmlArr);118 /******************************************119     如果要運(yùn)行上面的程序,請(qǐng)將兩部分分開(kāi)運(yùn)行(可以先注釋掉其中的某個(gè)部分)120 ******************************************/121 ?>

    圖3

    圖4

    圖5

    圖6

      好了,這篇就先這么多吧,代碼中的注釋很關(guān)鍵,由于沒(méi)有將每一次運(yùn)行的代碼都寫(xiě)入到新的文件,都是先編寫(xiě)一部分,完成以后,再注釋掉,所以大家在看的時(shí)候,一定

    要仔細(xì)看代碼的注釋,

      也不是我這人太爛,只是相同的說(shuō)明,沒(méi)有必要在寫(xiě)博客的時(shí)候再提出來(lái),既然都是干這個(gè)的,我相信大家都是有看注釋的習(xí)慣的。而我就在寫(xiě)代碼的時(shí)候把注釋盡量寫(xiě)的

    詳細(xì)點(diǎn),這樣,寫(xiě)博客時(shí)我也能節(jié)省點(diǎn)時(shí)間,畢竟周末時(shí)間是寶貴的呀!

      雖然只是一點(diǎn)學(xué)習(xí)筆記,但是我覺(jué)得總是可以幫助到一些人,而且把東西分享出來(lái),給別人開(kāi)的東西也不能太差。就是這樣的想法,我在學(xué)習(xí)的時(shí)候可能會(huì)更加用心。需要

    學(xué)習(xí)的東西還有很多,沒(méi)有辦法做更多的深入的研究。這些筆記就算是xml的入門吧,以后工作中再去了解更多的xml的東西。

    PHP編程

    鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

  • 發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    天堂在线看视频| 欧美好骚综合网| 久操视频免费在线观看| 国产激情在线免费观看| ㊣最新国产の精品bt7086| 成人免费观看网站| bdsmchinese医疗折磨| 国产探花在线观看视频| 萌白酱视频在线| 综合成人在线| 国产在线观看91| 欧美a级大片在线| 亚洲欧美偷拍卡通变态| 亚州av电影免费在线观看| 久精品在线观看| 成人写真福利网| 午夜精品福利在线视频| 久久国产欧美日韩精品| 午夜性色一区二区三区免费视频| 性欧美极品另类| 26uuu国产在线精品一区二区| 国产精品欧美极品| 国产视频手机在线播放| 亚洲wwwwww| 色aⅴ色av色av偷拍| 高清hd写真福利在线播放| 九色在线视频观看| 国产精品探花视频| 瑟瑟视频在线| 日韩黄色av| 亚洲午夜小视频| 亚洲图色中文字幕| 色视频在线免费观看| 亚州精品国产精品乱码不99按摩| 国产精品久久久久久久蜜臀| 亚洲成人久久久久| 深夜成人在线观看| 制服丨自拍丨欧美丨动漫丨| 国产一区成人| 欧美大交乱xxxxxbbb| 色婷婷av一区二区三区大白胸| 国产欧美日本一区视频| 国产乱子伦精品无码专区| 无码国产精品一区二区色情男同| av每日在线更新| 亚洲激情欧美| 伊人色综合久久天天人手人婷| 欧美日韩成人在线视频| 亚洲性图自拍| 亚洲狼人精品一区二区三区| 亚洲精品日韩久久| 91日韩精品视频| 51精品秘密在线观看| 小小水蜜桃在线观看| 久久久久性色av无码一区二区| 亚洲成人激情在线观看| 欧洲一区av| 91精品国产福利在线观看麻豆| 一区二区在线观看av| 四虎永久免费在线| 成年人国产在线观看| 天天免费亚洲黑人免费| 精品在线视频免费观看| 美女av在线免费观看| 毛片毛片毛片毛片| 欧美中文一区二区三区| 日韩精品免费一区二区三区竹菊| 亚洲网站三级| 精品少妇一区二区三区视频免付费| 日本成人精品| 中文娱乐网av| 高清一区二区中文字幕| 在线亚洲一区观看| 国内成+人亚洲| 日本中文字幕在线不卡| 国产无遮无挡120秒| 欧洲成人免费aa| 日本精品福利视频| 色综合天天综合| 极品颜值美女露脸啪啪| 摸bbb搡bbb搡bbbb| 日日摸夜夜爽人人添av| 欧美精品videofree1080p| 久久激情网站| 免费在线黄色网| 亚洲天堂开心观看| 欧美久久久久| 久久成人一区| 中文字幕无线精品亚洲乱码一区| 国产又色又爽又黄又免费| 色av中文字幕一区| 欧美日韩在线免费播放| 一区二区三区在线不卡| 精品国产二区在线| 性久久久久久| 久久精品日产第一区二区| 亚洲欧洲av| www.99re.av| 成人网6969conwww| 亚洲激情五月婷婷| 色综合天天狠天天透天天伊人| 91chinesevideo永久地址| 亚洲视频狠狠干| 久久手机视频| 国产成人精品123区免费视频| 亚洲人xxxx| 一本一道久久综合狠狠老| 亚洲精品一二三四五区| 春暖花开成人亚洲区| 欧美a级大片在线| 亚洲人在线观看| av在线不卡网| 欧美 日韩 国产 精品| 国内精品国语自产拍在线观看| 北条麻妃在线视频| 九九在线视频| 日日日日人人人夜夜夜2017| 国产精品99久久久久久久久久久久| 国产精品资源在线观看| 成人羞羞视频播放网站| 黄色福利在线观看| 波多野结衣在线网站| 久久av一区二区三区漫画| 天堂网在线资源| 国产精品视频一区二区在线观看| 精品国产欧美日韩一区二区三区| 91免费精品国偷自产在线| 香蕉人妻av久久久久天天| 国产精品高潮呻吟| 禁断一区二区三区在线| 久久久久国产精品厨房| 日本三级一区二区三区| 亚洲综合久久久| 欧美精品一区二区蜜臀亚洲| 亚洲码无人客一区二区三区| 波多野结衣一区二区三区在线| 97在线观看视频免费| 亚洲男人都懂的| 69p69国产精品| 欧洲亚洲在线视频| 国产亚洲视频在线观看| www国产视频| www.四虎网站| 国产成人无码www免费视频播放| 网红女主播少妇精品视频| 91人人澡人人爽人人精品| 三级黄在线观看| 日本在线观看视频网站| 日韩精品免费一区| 免费成年人高清视频| 99在线精品免费视频九九视| 欧美三级黄网| а√天堂资源在线| 天天综合一区| www.狠狠爱| 国产精品国码视频| yiren22亚洲综合| 欧美日韩激情视频| 免费黄色国产视频| 蜜桃麻豆91| 国内精品久久久久久久久电影网| 国产精品无码一区二区三区免费| 国外成人免费在线播放| 天堂在线观看视频观看www| 午夜国产在线观看| 日韩精品一区二区三区中文不卡| 日日摸夜夜添夜夜添毛片av| 国产69精品久久久久按摩| 精品一区二区综合| 国产18精品乱码免费看| 久久精品官网| 欧美电影完整版在线观看| 欧美成人另类视频| 亚洲人成免费网站| 国产精品毛片高清在线完整版| 亚洲精品一区二区三| 972aa.com艺术欧美| 十大黄色软件免费看| 亚洲精品久久久久久久蜜桃臀| 色综合五月天| 成人免费在线一区二区三区| 精品产国自在拍| 黄色在线一区| 99久久夜色精品国产亚洲| 日本精品一区二区三区在线观看视频| 成人羞羞视频免费看看| 白嫩少妇丰满一区二区| h视频在线免费观看| 老司机久久精品| 日本一区二区三区免费视频| 色综合久久88色综合天天免费| 亚洲一区资源| 午夜精品福利一区二区三区av| 一区二区三区四区五区精品| 国产情侣久久久久aⅴ免费| 国产风韵犹存在线视精品| 高清欧美精品xxxxx| 在线观看日本中文字幕| 成人亚洲国产| 精品国产欧美一区二区| 粉嫩粉嫩芽的虎白女18在线视频| 男人添女人下部高潮视频在线观看| 欧美日韩国产精品一区二区三区| 在线不卡中文字幕| 免费超爽大片黄| 最新国产拍偷乱拍精品| 久久久久久久久久国产精品| 岛国中文字幕在线| 国产乱女淫av麻豆国产| 免费精品一区| 成本人h片动漫网站在线观看| 国产精品一区二区午夜嘿嘿嘿小说| 蜜桃久久精品一区二区| 色婷婷久久综合中文久久蜜桃av| 色噜噜久久综合伊人一本| 老司机午夜在线| 精品国产三级| 写真福利精品福利在线观看| 福利欧美精品在线| 国产热re99久久6国产精品| 丁香久久综合| 色哟哟网站入口亚洲精品| 少妇久久久久久被弄到高潮| 国产又黄又嫩又滑又白| 欧美精品与人动性物交免费看| 激情综合网最新| 久久久久久久久久久久久女过产乱| 成人羞羞动漫| 日韩在线短视频| 欧美一级高清免费播放| 国产chinese中国hdxxxx| 国产精品18毛片一区二区| 自拍亚洲国产| 久久久久久久极品| 欧美大片aaa| 成人情趣视频网站| 日韩一区欧美一区| 91欧美视频网站| 亚洲天堂免费| 亚洲人成电影网站| 欧美在线综合视频| 久久综合久久美利坚合众国| 国产精品高清无码| 亚洲一区二区中文在线| 国产69精品久久久久久| 欧美日韩一区二区三区视视频| 午夜精品福利在线观看| 亚洲精品乱码久久久久久久久| 毛片av免费在线观看| 在线观看国产亚洲| 中文字幕一区三区久久女搜查官| 中文字幕42页丝袜| 久久综合狠狠| 美日韩一区二区| 爱爱精品视频| 久久九九热re6这里有精品| 欧美一级免费观看| 国产精品欧美久久久久一区二区| 午夜剧场免费在线观看| 成年人羞羞的网站| 99久久免费国产精品| 国产一区二区三区三区在线观看| 黄色一区二区视频| 成人在线观看网址| 日韩av在线播放不卡| 性xxxfreexxxx性欧美| 国产精品69av| 亚洲欧美日韩一区| 国产成人精品日本亚洲专区61| 日韩国产高清视频在线| 亚洲va欧美va人人爽成人影院| 青青草原av在线播放| 久久精品导航| 欧美成欧美va| 视频在线观看91| 中文字幕在线观看视频网站| 黄色大全在线观看| 国产美女撒尿一区二区| 成人动漫在线观看视频| 国产精品一二三四五区| 91精品久久香蕉国产线看观看| 亚洲精品乱码| 动漫av免费观看| 日韩精品一区二区三区免费观看| 国产成人久久婷婷精品流白浆| 亚洲视频国产视频| 亚洲国产精品99| 国产一区二区三区在线观看免费| 欧美日韩亚洲国产成人| 中日韩在线观看视频| 精品久久久国产精品999| 免费一级做a爰片久久毛片潮| 精品露脸国产偷人在视频| 国产欧美日韩中文| 91视频.com| 国产一级免费观看| 欧美色图另类图片| 久久美女福利视频| 亚洲精品乱码久久久久久金桔影视| 久久91超碰青草是什么| 亚洲欧美成人综合| 亚洲欧洲日韩综合二区| 最近中文字幕在线视频| 农村少妇一区二区三区四区五区| 97涩涩爰在线观看亚洲| 久久国产精品毛片| 中文字幕精品视频| 日韩中文字幕在线视频播放| 欧美色蜜桃97| 亚洲综合福利| 免费观看不卡av| 九色免费视频| 丁香综合在线| 久久亚洲道色| 中文字幕中文字幕在线一区| 国产一区视频在线看| 欧美日韩国产123区| 免费在线观看麻豆视频| 国产午夜精品一区二区三区视频| 99精品国产在热久久婷婷| 亚洲精品天堂成人片av在线播放| eeuss网址直达入口| 99热在线国产| 免费av网站大全久久| 久久嫩草精品久久久久| 欧洲在线/亚洲| 日韩一区二区在线观看视频| 亚洲无限av看|