2011-03-07 191 views
0

我的XML文件:在PHP中刪除XML節點

<temporary> 
    <users> 
    <temp> 
     <id>1</id> 
     <title> Undercover</title> 
     <author>Wiwit</author> 
    </temp> 
    <nissi> 
     <confirm>3977678bce8515e8cdbfa64850904ad1</confirm> 
     <firstname>hi</firstname> 
     <lastname>hhey</lastname> 
     <day>1</day> 
    </nissi> 
    </users> 
</temporary> 

我的PHP:

<?php 
$user="nissi"; 
$xml = simplexml_load_file("temporary.xml") 
     or die("Error: Cannot create object"); 
unset($xml->temporary->users->$user); 
?> 

這是爲什麼不工作。 未設置不工作。節點不會被刪除。

+0

這是行不通的? – hsz 2011-03-07 15:55:33

+0

什麼失敗?文件加載或'unset()'調用? – 2011-03-07 15:57:56

+0

未設置無法使用。 – simplyblue 2011-03-07 16:00:14

回答

3

它的工作原理是這樣的:

$user="nissi"; 
$xml = simplexml_load_file("temporary.xml") 
     or die("Error: Cannot create object"); 
unset($xml->users->$user); 
echo $xml->asXML(); 

你不要把根你的xml在「request」temporary這裏。

DEMO HERE

+0

沒錯!使用$ xml對象來證明! – powtac 2011-03-07 16:57:25

+0

只需調用變量與根節點相同的名稱,它將防止這種混淆。 – 2011-03-07 17:55:55

+0

@Josh Davis:對初學者來說這是一個很好的建議:) – Shikiryu 2011-03-07 18:21:09