起因:
今天做專案時遇到一個問題:需要動態更新主頁上的圖片,以示本站不是做完了就算了,是有人一直在維護。好了,需求有了,如何實現? !
我的想法如下:
圖片存放位置:放在一個文件夾中;圖片的類型:不能固定了,只要是圖片就可以上傳顯示;圖片名字:按原始名字有點不正規,應該重新命名一下。
顯示的位置:這就需要對圖片指定對應的id,這個id是固定的,要與圖片一一對應。於是就有一個記錄一一對應的關係文件,可以選擇csv文件,選擇資料庫記錄,最後決定選擇xml,這東西在學校一直沒學懂,我一直迴避使用這東西,怕麻煩。今天算是挑戰一下,花了一下午時間,終於有所收穫。
學習步驟:
明確目標: 1、理解xml的結構;2、如何動態建立xml檔;3、如何讀取與修改xml檔
一、xml的結構是樹狀結構:
這個好理解。簡單寫一個:
複製代碼 代碼如下:
二、我使用的php建立:
1. 定義一個DOM物件: $dom = new DomDocument('1.0');
2. 新增子元素:$dom-> >createElement("pictures"))
內存中的原型是:
繼續往裡邊加子元素:*-pic>appendld($create" ;
繼續加: **->appendChild($dom->createElement("id"));
不加子元素了,加節點: ***->appendld($dom-appendate> "1"))
上面的*代表上上一行的程式碼;這樣一來就可以寫成一行:
$dom->appendChild($dom-pic> $dom->createElement("picture"))
->appendChild($dom->createElement("id"))->appendChild($dom->createNode("1"));
顯然裡要求還遠,很容易看懵的。
因此一般這麼寫: $pictures = $dom->appendChild($dom->createElement("pictures"));
pic 〔 、)] dom->createElement("picture" ));
$id = $picture->appendChild($dom-> 、 、 、 、 $id->appendChild($dom->createNode("1"));
下面還可以接著創建name節點:
〔name = $picture- 〔name = $picture- 〔name = $picture-nd $name->appendChild($dom->createNode("pic 1"));
接下來還要接著創建picture節點:
》 〠 〠〠); 其實這些麻煩的事可以寫個for迴圈來實現。
產生xml檔:
dom>格式化輸出 〜>格式化輸出 = $dom->save("erhsh.xml");//儲存xml檔
三、讀取xml檔。
1、還是定義一個DOM物件;$dom->new DomDocument();
2、載入77 >名字取得節點集合:$dom->getElementByTagName("pictures");
這種方法有點麻煩,參考檔案:
http://www.jb51.net/article/25853.htm🎜>http://www.jb51.net/article/25853.htm🎜>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 xml 入門學習資料,包括了中學教育學複習資料方面的內容,希望對PHP教程有興趣的朋友有所幫助。