0

数値インデックスの代わりに可変インデックスを使用すると、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'] が正しい値であることを確認しました。私は何か間違ったことをしていますか、それとも変数を角括弧内に置くことはできませんか?

4

1 に答える 1

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"] とは異なります

于 2012-08-15T19:01:01.993 に答える