Home  >  Article  >  Backend Development  >  How to delete a certain piece of xml data in PHP

How to delete a certain piece of xml data in PHP

王林
王林Original
2019-09-21 11:49:242672browse

How to delete a certain piece of xml data in PHP

PHP method to delete and modify xml data

How to delete a certain piece of xml data in PHP

##example.xml

<?xml version="1.0" encoding="utf-8"?>
<root>
    <book id="1">
        <title>title1</title>
    </book>
    <book id="2">
        <title>title2</title>
    </book>
    <book id="3">
        <title>title3</title>
    </book>
    <book id="4">
        <title>title4</title>
    </book>
    <book id="5">
        <title>title5</title>
    </book>
</root>

Traverse the xml document

<?php

    $doc = new DOMDocument();
    $doc->load(&#39;example.xml&#39;);

    $books = $doc -> getElementsByTagName("book");
    //遍历
    foreach ($books as $book) {
        echo $book->getAttribute(&#39;id&#39;)."-";
        echo $book->getElementsByTagName("title")->item(0)->nodeValue;
        echo "<br>";
    }

The running result is:

1-title1
2-title2
3-title3
4-title4
5-title5

Modified:

<?php

    $doc = new DOMDocument();
    $doc->load(&#39;example.xml&#39;);

    $books = $doc -> getElementsByTagName("book");
    //遍历
    foreach ($books as $book) {
        //将id=3的title设置为33333
        if($book->getAttribute(&#39;id&#39;)==3){
            echo $book->getAttribute(&#39;id&#39;)."-";
            echo $book->getElementsByTagName("title")->item(0)->nodeValue="33333";
            echo "<br>";
        }
    }
    //对文件做修改后,一定要记得重新sava一下,才能修改掉原文件
    $doc -> save(&#39;example.xml&#39;);

After modified:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <book id="1">
        <title>title1</title>
    </book>
    <book id="2">
        <title>title2</title>
    </book>
    <book id="3">
        <title>33333</title>
    </book>
    <book id="4">
        <title>title4</title>
    </book>
    <book id="5">
        <title>title5</title>
    </book>
</root>

Deleted:

<?php

    $doc = new DOMDocument();
    $doc->load(&#39;example.xml&#39;);

    $root = $doc -> documentElement;//根标签   
    $books = $doc -> getElementsByTagName("book");
    //遍历
    foreach ($books as $book) {
        //将id=4的删除
        if($book->getAttribute(&#39;id&#39;)==4){
            $root->removeChild($book);
        }
    }
    //对文件做修改后,一定要记得重新sava一下,才能修改掉原文件
    $doc -> save(&#39;example.xml&#39;);

After deletion:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <book id="1">
        <title>title1</title>
    </book>
    <book id="2">
        <title>title2</title>
    </book>
    <book id="3">
        <title>33333</title>
    </book>

    <book id="5">
        <title>title5</title>
    </book>
</root>

The above content is for reference only!


Recommended tutorial:

PHP video tutorial

The above is the detailed content of How to delete a certain piece of xml data in PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn