• simpleXML


    PHP5以上提供了一个simpleXML对象来操作XML,把XML的节点转换成对象和数组去操作。

    基本思路:将xml字符串转化成对象及数组。

    查询

    <?php
    //将xml字符串转化成对象及数组
    $xml=  file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串
    $simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点
    //1、查询
    echo "<table width='400' border='1'>";
    foreach ($simple->book as $book){
        $attr=$book->attributes();
        echo"<tr>";
        echo "<td>".$book->name."</td>";
        echo "<td>".$book->price."</td>";
        echo "<td>".$attr['type']."</td>";//获取节点的属性
        echo "</tr>";
    }
    echo "</table>";

    添加

    <?php
    //
    将xml字符串转化成对象及数组 $xml= file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串 $simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点 //添加,simplexml目前还没有找到格式化的方法。 $book=$simple->addChild('book');//$simple相当于根节点,即代表books,在根下写book节点 $book->addChild('name','C++'); $book->addChild('price','11'); $book->addAttribute('type','动态语言'); $simple->saveXML('books.xml');//$simple->asXML('books.xml');和$simple->saveXML('books.xml');一样,都是保存的意思

    更新

    <?php
    //将xml字符串转化成对象及数组
    $xml=  file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串
    $simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点
    foreach ($simple->book as $book){
        $book->name.='-北京出版社';//相当于$book->name=$book->name.'-北京出版社';
    }
    $simple->saveXML('books.xml');

    删除,从后往前删

    <?php
    //将xml字符串转化成对象及数组
    $xml=  file_get_contents('books.xml');//把books.xml中的内容读出来,即获取XML的字符串
    $simple=new SimpleXMLElement($xml);//把XML字符串转成数组,$simple代表根节点
    ($i=count($simple->book)-1;$i>=0;$i--){
        $currenbook=$simple->book[$i];//当前图书
        $attr=$currenbook->attributes();
        if($attr['type']=='动态语言'){
            unset($simple->book[$i]);//unset销毁当前变量
        }
       
    } 
    $simple->saveXML('books.xml');
  • 相关阅读:
    [BZOJ] 2276: [Poi2011]Temperature
    [Codevs] 5037 线段树练习4加强版
    [Codevs] 4919 线段树练习4
    [Codevs] 1082 线段树练习3
    [Codevs] 1080 线段树练习
    [Codevs] 1081 线段树练习 2 ----“分块!”
    1629: [Usaco2007 Demo]Cow Acrobats
    Kruskal || BZOJ 1601: [Usaco2008 Oct]灌水 || Luogu P1550 [USACO08OCT]打井Watering Hole
    SET || BZOJ 1588: [HNOI2002]营业额统计 || Luogu P2234 [HNOI2002]营业额统计
    线段树合并+并查集 || BZOJ 2733: [HNOI2012]永无乡 || Luogu P3224 [HNOI2012]永无乡
  • 原文地址:https://www.cnblogs.com/dingxiaomei/p/7824128.html
Copyright © 2020-2023  润新知