使用$ variable作为索引取消设置PHP SImpleXML节点

时间:2012-08-15 18:55:20

标签: php simplexml

在使用变量索引而不是数字索引时,我在设置SimpleXML节点时遇到了问题。

这是我调用simpleXML的代码:

$highlights = new SimpleXMLElement($prj['project_xmldata']);
$node=$_POST['node'];
if(count($highlights->highlights->highlight)>0) {
   unset($highlights->highlights->highlight[$node]);
   print_r($highlights);
}

print_r语句的内容仍显示原始XML数据。但是,如果我使用数字索引而不是变量$node取消设置节点,我得到了正确的响应,删除了我未设置的节点。

我也试过用双引号封装变量,并确保$ _POST ['node']是一个正确的值。我做错了什么,或者我不能把变量放在方括号内?

1 个答案:

答案 0 :(得分:1)

将您的代码更改为此,并让我知道它的内容:

$highlights = new SimpleXMLElement($prj['project_xmldata']); 
$node=$_POST['node']; 
if(isset($highlights->highlights->highlight[$node])) {    
    unset($highlights->highlights->highlight[$node]);    
    print_r($highlights); 
} 
else
    echo $node." = ".gettype($node);

确保节点正确无误。确保它被注册为int而不是字符串。

$ variable [0]与$ variable [“0”]

不同