ホームページ >バックエンド開発 >PHPの問題 >PHPでXMLノードを削除する方法

PHPでXMLノードを削除する方法

藏色散人
藏色散人オリジナル
2020-07-11 10:25:302670ブラウズ

php メソッドで XML ノードを削除します。最初にすべての Bird ノードと各 Bird ノードのすべての属性を調べ、次にノード値を変更し、最後に「removeChild」メソッドを使用してノードを削除します。

PHPでXMLノードを削除する方法

php XML はノードの読み取り、編集、削除を行います

コードは次のとおりです:

$doc = new DOMDocument();
$doc->load('bird_base.xml');
$root = $doc->getElementsByTagName('birdList');
$root = $root->item(0);
$bird = $root->getElementsByTagName('bird');
//遍历所有 bird 节点
foreach ($bird as $rootdata) {
//遍历每一个 bird 节点所有属性
    $speciesID= $rootdata->getElementsByTagName('speciesID')->item(0)->nodeValue;
    $localName= $rootdata->getElementsByTagName('localName')->item(0)->nodeValue;
    $engName= $rootdata->getElementsByTagName('engName')->item(0)->nodeValue;
    $latinName= $rootdata->getElementsByTagName('latinName')->item(0)->nodeValue;
    $bird = $this->bird->get_bird_detail($speciesID);
    if(!empty($bird))
    {
        //修改节点值
        $rootdata->getElementsByTagName('localName')->item(0)->nodeValue = $bird['localName'];
        $rootdata->getElementsByTagName('engName')->item(0)->nodeValue = $bird['engName'];
        $rootdata->getElementsByTagName('latinName')->item(0)->nodeValue = $bird['latinName'];
    }else
    {
        //删除节点
        $rootdata->parentNode->removeChild($rootdata);
    }
}
$doc->save('bird_base.xml');
bird_base.xml 示例
<?xml version="1.0" encoding="UTF-8"?>
<birdList>
<bird>
<speciesID>1</speciesID>
<localName>雪鹑</localName>
<engName>Snow Partridge</engName>
<latinName>Lerwa lerwa</latinName>
</bird>
<bird>
<speciesID>2</speciesID>
<localName>藏雪鸡</localName>
<engName>Tibetan Snowcock</engName>
<latinName>Tetraogallus tibetanus</latinName>
</bird>
</birdList>

さらに関連する知識については、

PHP 中国語 Web サイト をご覧ください。

以上がPHPでXMLノードを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。