• 技术文章 >后端开发 >php教程

    如何在PHP中将数组转换为SimpleXML

    藏色散人藏色散人2019-01-25 13:22:31原创1900
    很多时候需要将数据作为XML格式存储到数据库或文件中供以后使用。要满足此要求,需要将数据转换为XML并保存XML文件。

    SimpleXML扩展函数提供了将XML转换为对象的工具集。这些对象处理普通的属性选择器和数组迭代器。

    示例1:

    <?php 
    // 将php数组转换为xml文档的代码
    
    //定义一个将数组转换成xml的函数。
    function arrayToXml($array, $rootElement = null, $xml = null) { 
        $_xml = $xml; 
          
        // 如果没有$rootElement,则插入$rootElement
        if ($_xml === null) { 
            $_xml = new SimpleXMLElement($rootElement !== null ? $rootElement : '<root/>'); 
        } 
          
        // 访问所有键值对 
        foreach ($array as $k => $v) { 
              
            // 如果有嵌套数组 
            if (is_array($v)) {  
                  
                // 调用嵌套数组的函数
                arrayToXml($v, $k, $_xml->addChild($k)); 
                } 
                  
            else { 
                  
                  
                $_xml->addChild($k, $v); 
            } 
        } 
          
        return $_xml->asXML(); 
    } 
      
    // 创建一个用于演示的数组 
    $my_array = array ( 
    'name' => 'GFG', 
    'subject' => 'CS', 
      
        // 创建嵌套数组。
        'contact_info' => array ( 
        'city' => 'Noida', 
        'state' => 'UP', 
        'email' => '448199179@qq.com'
        ), 
    ); 
      
    // 调用arrayToxml函数并打印结果
    echo arrayToXml($my_array); 
    ?>

    输出:

    <?xml version="1.0"?>
    <root>
        <name> GFG </name>
        <subject> CS </subject>
        <contact_info >
            <city > Noida < /city >
            <state > UP < /state >
            <email > 448199179@qq.com </email>
        <contact_info>
    <root>

    可以使用array_walk_recursive()函数解决上述问题。此函数将数组转换为xml文档,其中数组的键转换为值,数组的值转换为xml的元素。

    示例2:

    <?php 
    // 将php数组转换为xml文档的代码
    //创建一个数组
    $my_array = array ( 
        'a' => 'x', 
        'b' => 'y', 
          
        // creating nested array 
        'another_array' => array ( 
            'c' => 'z', 
        ), 
    ); 
      
    // 这个函数使用root元素创建一个xml对象。
    $xml = new SimpleXMLElement('<root/>'); 
      
    // 这个函数重新将数组元素添加到xml文档中
    array_walk_recursive($my_array, array ($xml, 'addChild')); 
      
    // 这个函数打印xml文档。 
    print $xml->asXML(); 
    ?>

    输出:

    <?xml version =“1.0”?> <root> 
           <x> a </ x> 
           <y> b </ y> 
           <z> c </ z> </ root>

    注:

    如果系统生成错误类型:

    PHP Fatal error: Uncaught Error: Class ‘SimpleXMLElement’ not found in /home/6bc5567266b35ae3e76d84307e5bdc78.php:24 ,

    那么只需安装php-xml,php-simplexml软件包。

    本篇文章就是关于PHP将数组转换为SimpleXML的方法介绍,希望对需要的朋友有所帮助!

    以上就是如何在PHP中将数组转换为SimpleXML的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:PHP怎么将字符串转换成数字 下一篇:php如何实现多线程
    大前端线上培训班

    相关文章推荐

    • php使用simplexml_load_file加载XML文件并显示XML的方法_php技巧• php+xml编程之SimpleXML的应用实例_php技巧• PHP中使用SimpleXML检查XML文件结构实例_php技巧• PHP中SimpleXML函数用法分析_php技巧

    全部评论我要评论

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

    PHP中文网