我的xml看起来像这样:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<images>
<pic>
<image>54</image>
<descr>Image 1</descr>
</pic>
<pic>
<image>32</image>
<descr>Image 2</descr>
</pic>
<pic>
<image>47</image>
<descr>Image 3</descr>
</pic>
</images>
我想删除一个元素,例如第二张图片(图片32)。使用此代码,但它无法正常工作。
$xml = simplexml_load_file('../../images.xml');
$target = false;
$i = 0;
foreach ($xml->pic as $m) {
if ($m['image']=='32') { $target = $i; break; }
$i++;
}
if ($target !== false) { //$target always be $false
unset($xml->pic[$target]);
}
echo $xml->savexml();
感谢您的任何建议。
答案 0 :(得分:1)
观察
$m
是对象而非数组,因此$m['image']
应更改为$m->image
将$target = false;
更改为$target = 0 ;
示例
$xml = simplexml_load_file ( '1.xml' );
$target = 0;
$i = 0;
foreach ( $xml->pic as $m ) {
if ($m->image == '32') {
$target = $i;
break;
}
$i ++;
}
if ($target !== false) {
unset ( $xml->pic [$target] );
}
echo $xml->savexml ();
答案 1 :(得分:0)
尝试创建新的XML
对象,并仅添加所需的数据并保存新对象。
答案 2 :(得分:0)
你的考试错了
if ($target !== false) {
应该是
if ($target > 0) {