2012-02-14 101 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