一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

php xml 入門學習資料

起因:
  今天做項目時遇到一個問題:需要動態更新主頁上的圖片,以示本站不是做完了就算了,是有人一直在維護。好了,需求有了,如何實現?!
  我的想法如下:
  圖片存放位置:放在一個文件夾中;圖片的類型:不能固定了,只要是圖片就可以上傳顯示;圖片名字:按原始名字有點不正規,應該重新命名一下。
  顯示的位置:這就需要對圖片指定相應的id,這個id是固定的,要與圖片一一對應。于是就有一個記錄一一對應的關系文件,可以選擇csv文件,選擇數據庫記錄,最后決定選擇xml,這個東西在學校一直沒學懂,我一直回避使用這東西,怕麻煩。今天算是挑戰一下,花了一下午時間,終于有所收獲。
學習步驟:
  明確目標: 1、理解xml的結構;2、如何動態建立xml文件;3、如何讀取和修改xml文件
  一、 xml的結構是樹形結構:
這個好理解。簡單寫一個:
復制代碼 代碼如下:
<pictures>
<picture>
<id>1</id>
<name>pic 1</name>
</picture>
<picture>
<id>2</id>
<name>pic 2</name>
</picture>
<picture>
<id>3</id>
<name>pic 3</name>
</picture>
</pictures>

二、我使用的php創建:
    1. 定義一個DOM對象: $dom = new DomDocument('1.0');
    2. 添加子元素:$dom->appendChild($dom->createElement("pictures"))
     內存中的原型是:<pictures></pictures>
     繼續往里邊加子元素:*->appendChild($dom->createElement("picture"));
     繼續加: **->appendChild($dom->createElement("id"));
     不加子元素了,加節點: ***->appendChild($dom->createNode("1"))
     上面的*代表上上一行的代碼;這樣一來就可以寫成一行:
       $dom->appendChild($dom->createElement("pictures"))->appendChild($dom->createElement("picture"))
       ->appendChild($dom->createElement("id"))->appendChild($dom->createNode("1"));
     現在內存中應該是這樣的:<pictures><picture><id>1</id></picture></pictures>
     顯然里要求還遠,很容易看懵的。
      因此一般這么寫: $pictures = $dom->appendChild($dom->createElement("pictures"));
               $picture = $pictures->appendChild($dom->createElement("picture"));
               $id = $picture->appendChild($dom->createElement("id"));
                $id->appendChild($dom->createNode("1"));
      下面還可以接著創建name節點:
               $name = $picture->appendChild($dom->createElement("name"));
                   $name->appendChild($dom->createNode("pic 1"));
      接下來還要接著創建picture節點:
              $picture = $pictures->appendChild($dom->createElement("picture"));
      其實這些麻煩的事可以寫個for循環來實現。
      生成xml文件:
              $dom->formatOutput = true;//設置格式化輸出
              $dom->save("erhsh.xml");//保存xml文件
  三、讀取xml文件。
      1、還是定義一個DOM對象;$dom->new DomDocument();
      2、加載xml文件:$dom->load("erhsh.xml");
      3、按照節點的名字取得節點集合:$dom->getElementByTagName("pictures");
      這種方法有點麻煩,參考文件:
http://www.jb51.NET/article/25853.htm

    不過有一種我喜歡的方法:simplexml_load_file("erhsh.xml");
     此方法可以把xml文件的內容轉換成對象的形式,使用"->"結和"[]"很容易去的xml的內容;
    但是在開發中還是遇到了一點問題:
    當執行:print_r($xml->pictures);時輸出的是一個 SimpleXMLElement 對象,([picture] => array([0]=>array(...)[1]=>array(...)));
    再執行:print_r($xml->pictures->picture);輸出的是n個分開的對象。
    執行:print_r($xml->pictures->picture[0]->id);輸出的還是一個對象。這就很不理解,應該是一個字符串。 最后網上說是“迭代對象”,
    應該使用echo輸出,print_r(), var_dump()輸出不準確。參考地址:http://www.jb51.NET/article/25852.htm
    當然也可以修改xml的值通過這個方法。
寫的很爛,僅供本人備忘。

php技術php xml 入門學習資料,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 激情综合婷婷丁香六月花 | 亚洲 欧美 国产另类首页 | 伊人久久大香线蕉综合爱婷婷 | 国产免费一区2区3区4区 | 5月色婷婷| 四虎永久在线精品视频免费观看 | 国产日韩欧美一区二区三区综合 | 中文字幕精品视频在线观看 | 亚洲大尺度视频 | 国产精品亚洲视频 | 久久怡红院国产精品 | 欧美成人aaaa免费高清 | 国产在线一区二区三区四区 | www.五月婷婷.com | 尤物福利在线 | 69国产成人综合久久精 | 欧美日韩中文国产一区二区三区 | 日韩精品一区二区三区乱码 | 久久亚洲人成国产精品 | 亚洲国产精品久久 | 国产在线视频在线 | 91免费精品视频 | 日韩午夜小视频 | 综合久久久久久 | 国产三级福利 | 亚洲天堂一区二区三区四区 | 精品国产美女福利在线 | 国产全黄三级国产全黄三级书 | 久久免 | 中文字幕日本久久2019 | 最近最新中文字幕在线第一页 | 一色屋成人免费精品网 | 视频国产一区 | 九九这里只有精品视频 | 人人添人人澡人人澡人人人人 | 四虎社区| 激性欧美在线播激性欧美 | 激情视频小说图片 | 国产成人精品免费视频大 | 美女福利视频一区 | 国产精品第一区在线观看 |