• 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>

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

  • 相关阅读:
    A-Level经济例题解析及练习Opportunity Cost
    相控阵天线(二):非规则直线阵列天线(稀布阵列、稀疏阵列、平方率分布阵列、含python代码)
    8. sqoop-1.4.7安装部署
    ZYNQ7010 PS PL BRAM少量数据通讯测试
    关于在学习 opengl 时遇到的 bug:在 glBegin 和 glEnd 中间使用 glLineWidth 的问题
    cmake学习过程记录
    Docker数据卷volume的使用详解
    Bigder:40/100 怎么组织一次用例评审
    MYSQL介绍——排序分页与索引
    python将字符串转换大小写的四大函数——lower、upper、capitalize、title函数
  • 原文地址:https://blog.csdn.net/wuxiaopengnihao1/article/details/126462692