为什么我的代码无法删除位于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>
答案 0 :(得分: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);
答案 1 :(得分:1)
你需要先保存文件试试
$xmldoc->save('asset.xml');
和
removeChild()
方法删除指定的节点
removeAttribute()
方法删除指定的属性。