zoukankan      html  css  js  c++  java
  • PHP之XML节点追加操作讲解

    问题:

    最近研究了xml,我想知道,如何用php向已有的xml文档中添加新的节点,比如,xml文档内容如下,并保存为information.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <information>
      <set label='0' value='0' />  
    <set label='3' value='270' />    
    </information>

    我如果想用php的dom方法再在根节点下添加个新的<set label='' value='' />,我该怎么写啊,求助!
    php要实现的效果:
      <?xml version="1.0" encoding="utf-8"?>
    <information>
      <set label='0' value='0' />  
    <set label='3' value='270' />
    <set label='9' value='50' />
    <set label='12' value='680' />
    <set label='15' value='560' />
    <set label='18' value='48' />
    <set label='21' value='714' />
    <set label='31' value='28' />
    </information>

    解答:

    例子解答:

    <?php
    header('Content-type: application/xml');

    $data_array = array(

        array(

        'title' => 'title1',

        'content' => 'content1',

            'pubdate' => '2009-10-11',

        ),

        array(

        'title' => 'title2',

        'content' => 'content2',

        'pubdate' => '2009-11-11',

        )

    );



    //  属性数组

    $attribute_array = array(

        'title' => array(

        'size' => 1

        )

    );



    //  创建一个XML文档并设置XML版本和编码。。

    $dom=new DomDocument('1.0', 'utf-8');



    //  创建根节点

    $article = $dom->createElement('article');

    $dom->appendchild($article);



    foreach ($data_array as $data) {

        $item = $dom->createElement('item');

        $article->appendchild($item);



        create_item($dom, $item, $data, $attribute_array);

    }



    echo $dom->saveXML();



    function create_item($dom, $item, $data, $attribute) {

        if (is_array($data)) {

            foreach ($data as $key => $val) {

                //  创建元素

                $$key = $dom->createElement($key);

                $item->appendchild($$key);



                //  创建元素值

                $text = $dom->createTextNode($val);

                $$key->appendchild($text);



                if (isset($attribute[$key])) {

                //  如果此字段存在相关属性需要设置

                    foreach ($attribute[$key] as $akey => $row) {

                        //  创建属性节点

                        $$akey = $dom->createAttribute($akey);

                        $$key->appendchild($$akey);



                        // 创建属性值节点

                        $aval = $dom->createTextNode($row);

                        $$akey->appendChild($aval);

                    }

                }   //  end if

            }

        }   //  end if

    }   //  end function

    ?>

  • 相关阅读:
    C# 中ArrayList强制转化为数组【转】
    [转]rdlc和rdl的区别
    用EditPlus打造C#编程环境
    aspnet_wp.exe 未能启动
    手工打造C#IDE环境(一):万事开头难
    不让Hashtable排序
    Javascript实现把网页中table的内容导入到excel中的几种方法
    jQuery UI draggable+droppable+resizable+selectable+sortable
    CodeIgniter整理
    PHP文件 文件夹操作
  • 原文地址:https://www.cnblogs.com/milantgh/p/3681417.html
Copyright © 2011-2022 走看看