如何编辑xml节点值

时间:2012-08-02 09:43:04

标签: php xml simplexml

我正在编写一个自定义插件,可以在我的网站上使用Jw播放器adtonomy插件来加载来自XML文件的广告。但是我不知道如何更新文件中的节点。我试过使用简单的xml,但我不知道如何更新。任何实施都受到高度重视。谢谢。这是xml文件。

<xml>
<plugins>adtimage</plugins>
<adtimage.graphic>http://mysite/default.png</adtimage.graphic>
<adtimage.link>http://targetsite.com</adtimage.link>
<adtimage.positions>pre,post</adtimage.positions>
<adtimage.onpause>true</adtimage.onpause>
<adtimage.txt>Advertisement</adtimage.txt>
<adtimage.btntxt>Click to continue with video</adtimage.btntxt>
</xml>

我的代码在这里。

<?php
$xml = simplexml_load_file("test.xml");
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
{
 echo $child->getName() . ": " . $child . "<br />";

 /*
   TO DO
   change the node value of 
   <adtimage.graphic>http://mysite/default.png</adtimage.graphic>
   to
   <adtimage.graphic>http://stackoverflow.com</adtimage.graphic>
 */
 }
?>

1 个答案:

答案 0 :(得分:1)

您可以使用此

//Load XML
$xml = simplexml_load_file("test.xml");

// Modify a node
$xml->{"adtimage.graphic"} = 'http://stackoverflow.com/adtimage.graphic';

// Saving the whole modified XML to a new filename
$xml->asXml('updated.xml');

示例输出'updated.xml'

<?xml version="1.0"?>
<xml>
<plugins>adtimage</plugins>
<adtimage.graphic>http://stackoverflow.com/adtimage.graphic</adtimage.graphic>
<adtimage.link>http://targetsite.com</adtimage.link>
<adtimage.positions>pre,post</adtimage.positions>
<adtimage.onpause>true</adtimage.onpause>
<adtimage.txt>Advertisement</adtimage.txt>
<adtimage.btntxt>Click to continue with video</adtimage.btntxt>
</xml>