PHP修改XML节点值不成功.大侠帮忙瞧瞧代码错在哪!

codelifes 2009-05-05 03:03:47
<?php
$xml = new DOMDocument();
$xml->load('playlist.xml');
foreach($xml->getElementsByTagName('title') as $list)
{
$value = $list->nodeValue;
if ($value == 'SONGA')
{
$value->nodeValue="123456789";
$xml->save( 'playlist.xml');
}
echo $value."<br />";
}
?>

以上PHP代码可以输出playlist.xml文件中的所有title节点,但上面尝试修改值为SONGA的title节点的值为123456789,不成功!
帮我瞧瞧错在哪!

以下是XML文件内容
<?xml version="1.0" encoding="utf-8"?>
<music autoPlay="true" autoNextSong="true">
<song>
<title>SONGA</title>
<mp3File>asgsdgs</mp3File>
</song>
<song>
<title>SONGB</title>
<mp3File>CINA</mp3File></song>
<song>
<title>SONGC</title>
<mp3File>CCC</mp3File>
</song>
</music>
...全文
369 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyq0125 2011-07-06
  • 打赏
  • 举报
回复
谢谢啦。楼主
cds27 2009-05-12
  • 打赏
  • 举报
回复
还是楼上这位兄弟细心
zhiyongtu 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用楼主 codelifes 的帖子:]
foreach($xml->getElementsByTagName('title') as $list)
{
$value = $list->nodeValue;
if ($value == 'SONGA')
{
$value->nodeValue="123456789";
$xml->save( 'playlist.xml');
}
echo $value." <br />";
}
[/Quote]

我不懂PHP,但上面的代码看了还是明白其中的意思。我认为
$value->nodeValue="123456789";
应改为
$list->nodeValue="123456789";

另外,$xml->save( 'playlist.xml'); 应放在foreach循环之外,应是数据处理完了才存盘,不过这一点在这个问题当中不影响功能,是性能和程序逻辑问题。
cds27 2009-05-11
  • 打赏
  • 举报
回复
$value有没有取到SONGA?
xiaojing7 2009-05-07
  • 打赏
  • 举报
回复
不懂PHP

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧