使用DOM和PHP删除XML文件的子节点

使用DOM和PHP删除XML文件的子节点,php,dom,Php,Dom,我试图使用DOM和PHP删除XML文档中的一个子节点,但我不太清楚该怎么做。我没有访问simpleXML的权限 XML布局: <list> <as> <a> <a1>delete</a1> </a> <a> <a1>keep</a1> </a> </as> <list> 删除

我试图使用DOM和PHP删除XML文档中的一个子节点,但我不太清楚该怎么做。我没有访问simpleXML的权限

XML布局:

<list>
  <as>
     <a>
       <a1>delete</a1>
     </a>
     <a>
       <a1>keep</a1>
     </a>
  </as>
<list>

删除
保持
PHP代码:

$xml = "file.xml";
$dom = DOMDocument::load($xml);
$list = $dom->getElementsByTagName('as')->item(0);

//Cycle through <as> elements (there are multiple in the full file)
foreach($list->childNodes as $child) {
    $subChild = substr($child->tagName, 0, -1);
    $a = $dom->getElementsByTagName($subChild);
            //Cycle through <a> elements
    foreach($a as $node)
    {
        //Get status for status check
        $check= $node->getElementsByTagName("a1")->item(0)->nodeValue;
        if(strcmp($check,'delete')==0)
        {
                         //code to delete here (I wish to delete the <a> that this triggers
        }
    }
}
$xml=“file.xml”;
$dom=DOMDocument::load($xml);
$list=$dom->getElementsByTagName('as')->项(0);
//循环浏览元素(完整文件中有多个元素)
foreach($list->childNodes作为$child){
$subChild=substr($child->tagName,0,-1);
$a=$dom->getElementsByTagName($subChild);
//循环元素
foreach($a作为$node)
{
//获取状态检查的状态
$check=$node->getElementsByTagName(“a1”)->item(0)->nodeValue;
if(strcmp($check,'delete')==0)
{
//要在此处删除的代码(我希望删除由此触发的
}
}
}

您需要一个节点的父节点来删除它,并且您已经将它作为要删除的节点的属性,因此没有什么大不了的。结果将是:

$node->parentNode->removeChild($node);