2012-02-14 110 views
1

我有一個非常簡單的xml內容videolar.xml。 Flash播放器會播放這些元素並播放它們。我想要更改<title><youtube>元素php simplexml。我寫了一個代碼video.php來改變這些元素。當我運行video.php它打印如下。它看起來像是有效的,但是如果我玩這個玩家,它仍然會帶領齊柏林飛艇,並且不會玩白蛇。如果我通過瀏覽器打開video.xml,我看到這個xml文件沒有改變。仍然帶領齊柏林飛艇。那麼如何更新Flashplayer的播放列表?用php simplexml工具更新xml文件

videolar.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <playlist> 
    <track> 
     <title>led zeppelin - kashmir</title> 
     <youtube>sfR_HWMzgyc</youtube> 
    </track> 
    <track> 
     <title>pink floyd - eclipse</title> 
     <youtube>BUwUKyztI10</youtube> 
    </track> 
    </playlist> 

video.php

<?php 
    $completeurl = $_SERVER['DOCUMENT_ROOT'].'/ytplayer/videolar.xml'; 
    $xml = simplexml_load_file($completeurl); 

    $xml->track[0]->title = 'Whitesnake - Is this love'; 
    $xml->track[0]->youtube = 'GOJk0HW_hJw'; 

    print_r($xml); 
?> 

當我運行這段代碼上面它打印:

(
    [track] => Array 
    (
    [0] => SimpleXMLElement Object 
    (
     [title] => Whitesnake - Is this love 
     [youtube] => GOJk0HW_hJw 
    ) 
    [1] => SimpleXMLElement Object 
    (
     [title] => pink floyd - eclipse 
     [youtube] => BUwUKyztI10 
    ) 
) 
) 
+0

可能的重複[一個簡單的程序到CRUD節點和xml文件的節點值](http://stackoverflow.com/questions/4906073/a-simple-program-to-crud-node-and-node-values- of-xml-file) – Gordon 2012-02-14 12:54:00

+0

也許它是重複的,但我還沒有解決它。我添加了$ xml-> asXml(); – Tahtakafa 2012-02-14 13:08:40

回答

1

您需要修改XML回保存到文件

<?php 
    $completeurl = $_SERVER['DOCUMENT_ROOT'].'/ytplayer/videolar.xml'; 
    $xml = simplexml_load_file($completeurl); 

    $xml->track[0]->title = 'Whitesnake - Is this love'; 
    $xml->track[0]->youtube = 'GOJk0HW_hJw'; 

    $xml->asXML($completeurl) 
?> 
+0

我想同上,但我不想在xml文件中進行更改,只想在對象中進行更改,以便我可以在頁面上打印更新的標籤?像'echo $ tmpStr =(string)$ xmlObj-> ordered_list-> asXML();' – Bajrang 2013-04-16 12:19:40