• PHP数组输出为xml的两种常见方法


    很多时候,我们需要将数据以XML格式存储到数据库或文件中,以备后用。为了满足此需求,我们将需要将数据转换为XML并保存XML文件。在本教程中,我们将讨论如何使用PHP将数组转化为xml格式。

    我们将使用以下2种方法来做到这一点。

    1. SimpleXMLElement类 
    2. DOMDocument()类

    使用SimpleXMLElement类将数组转化为xml

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

    下面的代码使用元素根创建一个xml对象。

    $xml = new SimpleXMLElement('');

    我们可以使用array_walk_recursive()函数将数组转换为XML文档,其中将数组的键转换为值,并将数组的值转换为XML元素。

    例子:

    1. <?php
    2. // Code to convert php array to xml document
    3. // Creating an array
    4. $my_array = array (
    5. 'a' => 'x',
    6. 'b' => 'y',
    7. // creating nested array
    8. 'another_array' => array (
    9. 'c' => 'z',
    10. ),
    11. );
    12. // This function create a xml object with element root.
    13. $xml = new SimpleXMLElement('');
    14. // This function resursively added element
    15. // of array to xml document
    16. array_walk_recursive($my_array, array ($xml, 'addChild'));
    17. // This function prints xml document.
    18. print $xml->asXML();
    19. ?>

    输出:

    1. <?xml version="1.0"? >
    2. <root >
    3. <x> a </x >
    4. <y> b </y >
    5. <z> c </z >
    6. </root >

    使用DOMDocument()类将数组转化为xml

    要使用DOMDocument创建XML,基本上,我们需要使用createElement()和 createAttribute() 方法创建标记和属性,使用appendChild()来创建XML结构 。

    例子:

    1. $name = $e['name_1'];
    2. $email = $e['email_id'];
    3. $phone_no =$e['phone_no'];
    4. $doc = new DOMDocument();
    5. $doc->formatOutput = true;
    6. $root = $doc->createElement('StudentDetails');
    7. $root = $doc->appendChild($root);
    8. $ele1 = $doc->createElement('StudentName');
    9. $ele1->nodeValue=$name;
    10. $root->appendChild($ele1);
    11. $ele2 = $doc->createElement('FatherEmailId');
    12. $ele2->nodeValue=$email;
    13. $root->appendChild($ele2);
    14. $ele3 = $doc->createElement('PhoneNumber');
    15. $ele3->nodeValue=$phone_no;
    16. $root->appendChild($ele3);
    17. $doc->save('MyXmlFile007.xml');

    结果:

    1. <?xml version="1.0"?>
    2. <StudentDetails>
    3. <StudentName>Pravin Parayan</StudentName>
    4. <FatherEmailId>pravinp@pigtailpundits.com</FatherEmailId>
    5. <PhoneNumber>9000012345</PhoneNumber>
    6. </StudentDetails>

    以上是本文的全部类容,感谢阅读,希望能帮到大家。更多教程请访问码农之家   

  • 相关阅读:
    《Large Language Models for Generative Information Extraction: A Survey》阅读笔录
    Java框架(三)--Spring IoC容器与Bean管理(7)--基于注解配置IoC容器
    【并发编程】ReentrantLock的lock()方法源码分析
    【MySQL】MySQL的存储过程(1)
    PHP的序列化和反序列化入门
    THP Maleimide,1314929-99-1,THP-Mal凯新生物双功能螯合剂
    JVM Optimization Learning(四)
    音视频进阶教程|如何实现游戏中的实时语音
    UWB无线精准定位技术,超宽带测距通信交互,实时厘米级精度应用
    P1141 01迷宫(dfs+染色联通块)
  • 原文地址:https://blog.csdn.net/wuxiaopengnihao1/article/details/126462692