[英]remove node inside node in XML using PHP
我想從我的XML文件中刪除一個特定的節點,似乎我錯過了一些代碼! 您能幫我解決這個問題嗎,例如,我想刪除標簽及其所有內部標簽。
XML結構:
<students>
<student>
<username>sally</username>
<subjects>
<subjects>sub1</subjects>
<subjects>sub2</subjects>
<subjects>sub3</subjects>
</subjects>
</student>
<student>
<username>jojo</username>
<subjects>
<subjects>sub1</subjects>
<subjects>sub2</subjects>
<subjects>sub3</subjects>
<subjects>sub4</subjects>
<subjects>sub5</subjects>
</subjects>
</student>
</students>
功能:
public static function delete_subjects($UserName, $fileName) {
//delete from xml
$xml = new DOMDocument();
$xml->load($fileName);
$users = $xml->getElementsByTagName('student');
foreach ($users as $user) {
$username = $user->getElementsByTagName('username')->item(0)->nodeValue;
if ($username == $UserName) {
$p=$user->getElementsByTagName('subjects')->item(0);
$xml->documentElement->removeNode($p);
break;
}
}
$xml->save($fileName);
}
致電:
delete_subjects('jojo', $fileName);
代替$xml->documentElement->removeNode($p);
嘗試使用$user->removeChild($p);
編輯 :甚至$p->parentNode->removeChild($p);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.