zoukankan      html  css  js  c++  java
  • php操作xml

    使用php技术对xml文件进行操作常用的三种技术
    1.php dom www.w3school.com.cn/xmldom/
    2.php 结合xpath 操作xml www.w3school.com.cn/xpath/xpath_syntax.asp
    3.SimpleXml www.w3school.com.cn/php/php_ref_simplexml.asp

    dom操作

    <?php 
    header("Content-Type: text/html; charset=utf-8");// 创建一个domdocument对象 表示文档
    $xmldoc=new DOMDocument();
    $xmldoc->load("classes.xml");// 指定加载那个xml 解析那个文件
    $stus=$xmldoc->getElementsByTagName("学生");// 查询节点 把所有的学生获取(domnodelist)
    for($i=0; $i<$stus->length;$i++) {// 遍历
            $stu=$stus->item($i); //取出学生
            echo getNodeVal($stu,"名字")."--".getNodeVal($stu,"年龄").getNodeVal($stu,"介绍")."<br/>"; //各个信息
        }
        function getNodeVal(&$MyNode,$tagName){        
            return $MyNode->getElementsByTagName($tagName)->item(0)->nodeValue;
    }
    
    // 添加节点
    // $root=$xmldoc->getElementsByTagName("班级")->item(0);
    // $stu_node=$xmldoc->createElement("学生");
    // $stu_node->setAttribute("性别","男");
    // $stu_node_name=$xmldoc->createElement("名字");
    // $stu_node_name->nodeValue="小明";
    //$stu_node->appendChild($stu_node_name);
    //$stu_node_age=$xmldoc->createElement("年龄");
    //$stu_node_age->nodeValue="12"; // $stu_node->appendChild($stu_node_age); // $stu_node_intro=$xmldoc->createElement("介绍"); // $stu_node_intro->nodeValue="不爱学习"; // $stu_node->appendChild($stu_node_intro); // $root->appendChild($stu_node); // $xmldoc->save("classes.xml"); // echo "添加成功"; // 删除节点 // $root=$xmldoc->getElementsByTagName("班级")->item(0); // $stus=$xmldoc->getElementsByTagName("学生"); // $stu1=$stus->item(2); // $stu1->parentNode->removeChild($stu1); // $xmldoc->save("classes.xml"); // echo "删除成功"; // 修改节点 // $stus=$xmldoc->getElementsByTagName("学生"); // $stu1=$stus->item(0); // $stu1_age=$stu1->getElementsByTagName("年龄")->item(0); // $stu1_age->nodeValue+=10; // $xmldoc->save("classes.xml"); // echo "更新ok";

    calsses.xml

    <?xml version="1.0" encoding="utf-8"?>
    <班级>
        <学生>
            <名字>小马哥</名字>
            <年龄>63</年龄>
            <介绍>学习刻苦</介绍>
        </学生>
        <学生>
            <名字>林青霞</名字>
             <年龄>32</年龄>
            <介绍>是一个好学生</介绍>
        </学生>
        
        <学生>
            <名字>李彦宏</名字>
             <年龄>42</年龄>
            <介绍>百度</介绍>
        </学生>
        <学生>
            <名字>雷军</名字>
             <年龄>42</年龄>
            <介绍>小米</介绍>
        </学生>    
    </班级>

     simplexml操作(不能操作中文节点?)

    <?php 
    header("Content-Type: text/html; charset=utf-8");
    $lib=simplexml_load_file("classes.xml"); //装载一个xml文件
    //var_dump($lib);
    $books=$lib->book;//取出书,$books就是一个数组
    //$book=$books[0];
    //取出书名
    //echo $book->title."||".$book->author."||".$book->code;
    for($i=0;$i<count($books);$i++){
        $book=$books[$i];
        //取出属性的值
        echo '出版:'.$book['house']."<br/>";
        echo '书名:'.$book->title."<br/>";
        echo '价格:'.$book->price."<br/>";
        echo '作者:'.$book->author."<br/>";
        echo '编码:'.$book->code."<br/>";
    }
    //SimpleXML也可以和xpath结合,功能强大
    echo "<br/>*****simplexml 和 xpath结合****";
    $titles=$lib->xpath("//title");
    foreach($titles as $val){
        echo  "<br/>".$val;
    }

    classes.xml

    <?xml version="1.0" encoding="utf-8"?>
    <books>
    <book house="清华出版社">
    <code>001</code>
    <price>9.9</price>
    <author>金庸</author>
    <title>天龙八部</title>
    </book>
    <book house="北大出版社">
    <code>002</code>
    <price>10</price>
    <author>小明</author>
    <title>笑傲江湖</title>
    </book>
    </books>
  • 相关阅读:
    SQLSERVER 远程登录18456错误
    谁用掉了我的数据库空间?
    Zabbix-微信报警
    Mailx安装与使用
    Redis-集群操作
    Redis-集群部署
    十、Zabbix-自动关联模板
    九、Zabbix-触发器
    八、Zabbix-应用集、监控项
    七、Zabbix-模板,应用集,监控项,触发器
  • 原文地址:https://www.cnblogs.com/aten/p/8590376.html
Copyright © 2011-2022 走看看