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::getElementsByTagNameDOMNodeListを介して要素にアクセスする必要があります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 に答える