簡體   English   中英

使用PHP刪除XML中節點內的節點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM