使用php simplexml工具更新xml文件

时间:2012-02-14 12:51:52

标签: php xml simplexml

我有一个非常简单的xml内容videolar.xml。 Flash播放器采用这些元素并播放它们。我想按<title>更改<youtube>php simplexml元素。我写了一个代码video.php来改变这些元素。当我运行video.php时,它打印如下。它看起来很有效,但如果我玩它的播放器,它仍会播放zeppelin,并且不播放whitesnake。如果我通过浏览器打开video.xml,我发现xml文件没有更改。仍然领导齐柏林飞艇。那么如何更新flashplayer的播放列表呢?

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
    )
  )  
)

1 个答案:

答案 0 :(得分:2)

您需要将修改后的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)
?>