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

    php怎么改变xml 节点值

    藏色散人藏色散人2021-09-02 14:42:50原创104

    php改变xml节点值的方法:1、从数据库读取数据;2、写一个xml文件;3、创建DOMDocument的对象并载入xml文件;4、修改指定节点下子节点的值即可。

    本文操作环境:Windows7系统、PHP7.1版本、Dell G3电脑

    php怎么改变xml 节点值?

    php修改xml节点的值

    今天刚刚实现的功能,找了很多资料,本来想用xpath,但是由于对xpath不甚了解。绕了个大圈后还是决定用DOMDocument来做。

    在此做一个标记,以后找资料的时候也不用太辛苦。

    先从数据库读取数据,然后写一个xml文件。xml文件格式如下。

    mainchart.xml

    <?xml version="1.0" encoding="utf-8"?>
    <records>
    <record>
    <pono>5008171</pono>
    <status>3</status>
    <opentime>2010.06.13 14:19</opentime>
    <closetime>2010.06.16 14:19</closetime>
    <potype>balance</potype>
    <variety/>
    <margin/>
    <openprice/>
    <closeprice/>
    <zhisun/>
    <zhiying/>
    <lowest/>
    <highest/>
    <netvalue/>
    <openamount/>
    <openinterest/>
    <amount/>
    <point/>
    <positiontime>3</positiontime>
    <memo>TRMM-DP(123005)-D</memo>
    </record>
    <record>
    <pono>5011083</pono>
    <status>3</status>
    <opentime>2010.06.15 16:15</opentime>
    <closetime>2010.06.15 16:23</closetime>
    <potype>buy</potype>
    <variety>eurusd</variety>
    <margin/>
    <openprice>1.31822</openprice>
    <closeprice>1.31655</closeprice>
    <zhisun>0</zhisun>
    <zhiying>0</zhiying>
    <lowest/>
    <highest/>
    <netvalue/>
    <openamount/>
    <openinterest/>
    <amount/>
    <point/>
    <positiontime>00:08:00</positiontime>
    <memo>aaafff</memo>
    </record>
    <record>
    <pono>5011913</pono>
    <status>3</status>
    <opentime>2010.06.15 16:51</opentime>
    <closetime>2010.06.15 17:19</closetime>
    <potype>sell</potype>
    <variety>eurusd</variety>
    <margin/>
    <openprice>1.31819</openprice>
    <closeprice>1.31809</closeprice>
    <zhisun>0</zhisun>
    <zhiying>0</zhiying>
    <lowest/>
    <highest/>
    <netvalue/>
    <openamount/>
    <openinterest/>
    <amount/>
    <point/>
    <positiontime>00:28:00</positiontime>
    <memo>eee</memo>
    </record>
    </records>

    php文件里的处理。

    $file ="mainchart.xml";
        //创建DOMDocument的对象
        $dom=new DOMDocument('1.0');
        //载入mainchart.xml文件
        $dom->load($file);
        //获得record节点的集合
        $records = $dom->getElementsByTagName('record');
        //遍历record节点的集合
        foreach($records as $record){
            //如果record节点的pono子节点的值满足条件,就修改该record节点下memo子节点的值
            if($record->getElementsByTagName('pono')->item(0)->nodeValue == $_GET['id']){
                $record->getElementsByTagName('memo')->item(0)->nodeValue = $_GET['content'];
            }
        }
    $dom->save('mainchart.xml');

    $_GET['id']和$_GET['content']是ajax传过来的参数。

    推荐学习:《PHP视频教程

    以上就是php怎么改变xml 节点值的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php xml
    上一篇:php配置文件不起作用怎么办 下一篇:php怎么将秒数转换成时分秒
    线上培训班

    相关文章推荐

    • php中怎么调用类的私有方法• php中怎么进行日期类型转换• php怎么设置页面运行时间• php 数组怎么去空不去零

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网