php-dom与xpath一起删除标记


php dom with xpath to remove tag

我有一个xml,格式如下:

<root>
    <a>1</a>
    <b>2</b>
    <c></c>
</root>

这是我尝试过的代码:

$to = 3;
$dom = new DOMDocument();
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
$dom->load("../xxx.xml");
$xpath = new DOMXPath($dom);
$query = "/root/*[position()=$to]";
$nodes = $xpath->query($query);
$node = $nodes[0];
$dom->removeChild($node);
$dom->save("../xxx.xml", LIBXML_NOEMPTYTAG);

如何删除名为"c"的标签?

天哪,问题出在之下

$dom->removeChild($node);

应该是

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

为了删除一个节点,您必须返回到父节点,然后它将执行操作。。我想,这只是我的两毛钱。如果有人理解得很好,请随时更正我的