1

为什么我的代码无法删除位于我的asset.xml 中的元素

这是我在 php 文件中的 xml 代码:

<?php

if(isset($_POST["delete"])) {
        $node = $_GET["node"]; //get from form
        $xmldoc->load('asset.xml');
        $y= $xmldoc->getElementsByTagName("asset")[$node];
        $xmldoc.documentElement.removeChild($y);}
?>

我的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Assets>
  <asset>
    <AssetType>PROJECTOR</AssetType>
    <Product>DELL</Product>
    <Brand>DELL</Brand>
  </asset>
</Assets>
4

2 回答 2

1

您必须保存文件才能使更改持续存在

$xmldoc->save('asset.xml');

看到您发布的代码是实际代码

DOMDocument::getElementsByTagName返回一个DOMNodeList你必须通过DOMNodelist::item

$y = $xmldoc->getElementsByTagName("asset")->item($node);//assuming $node is an integer < # of matched nodes

->用于访问 php 中的对象属性不应该.如此$xmldoc.documentElement.removeChild($y);

$xmldoc->documentElement->removeChild($y);

或者更好

$y->parentNode->removeChild($y);
于 2012-12-19T06:45:45.947 回答
1

你需要先保存文件试试

$xmldoc->save('asset.xml');

removeChild()方法删除指定的节点。
removeAttribute()方法删除指定的属性。

于 2012-12-19T06:46:27.027 回答