• 技术文章 >后端开发 >PHP问题

    PHP如何删除xml某条数据

    王林王林2019-09-21 11:49:24原创1032

    PHP实现删除和修改xml数据的方法

    xml数据.jpg

    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>

    遍历xml文档

    <?php
    
        $doc = new DOMDocument();
        $doc->load('example.xml');
    
        $books = $doc -> getElementsByTagName("book");
        //遍历
        foreach ($books as $book) {
            echo $book->getAttribute('id')."-";
            echo $book->getElementsByTagName("title")->item(0)->nodeValue;
            echo "<br>";
        }

    运行结果为:

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

    修改:

    <?php
    
        $doc = new DOMDocument();
        $doc->load('example.xml');
    
        $books = $doc -> getElementsByTagName("book");
        //遍历
        foreach ($books as $book) {
            //将id=3的title设置为33333
            if($book->getAttribute('id')==3){
                echo $book->getAttribute('id')."-";
                echo $book->getElementsByTagName("title")->item(0)->nodeValue="33333";
                echo "<br>";
            }
        }
        //对文件做修改后,一定要记得重新sava一下,才能修改掉原文件
        $doc -> save('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>33333</title>
        </book>
        <book id="4">
            <title>title4</title>
        </book>
        <book id="5">
            <title>title5</title>
        </book>
    </root>

    删除:

    <?php
    
        $doc = new DOMDocument();
        $doc->load('example.xml');
    
        $root = $doc -> documentElement;//根标签   
        $books = $doc -> getElementsByTagName("book");
        //遍历
        foreach ($books as $book) {
            //将id=4的删除
            if($book->getAttribute('id')==4){
                $root->removeChild($book);
            }
        }
        //对文件做修改后,一定要记得重新sava一下,才能修改掉原文件
        $doc -> save('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>33333</title>
        </book>
    
        <book id="5">
            <title>title5</title>
        </book>
    </root>

    以上内容仅供参考!

    推荐教程:PHP视频教程

    以上就是PHP如何删除xml某条数据的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 删除 xml 数据
    上一篇:php如何删除变量 下一篇:php如何确定变量的数据类型
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• json转xml用什么• 一篇文章带你走进XML语法规则• 有关XML解析中DOM解析的详细介绍• php解析xml的几种方式
    1/1

    PHP中文网