php 数组怎么转成xml

不及物动词 其他 224

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要将PHP数组转换成XML,可以使用SimpleXML扩展。以下是一个示例代码:

    “`php
    ‘John’,
    ‘age’ => 30,
    ‘city’ => ‘New York’
    );

    // 创建一个XML对象
    $xml = new SimpleXMLElement(‘‘);

    // 将数组转换成XML
    arrayToXml($data, $xml);

    // 将XML保存到文件
    $xml->asXML(‘data.xml’);

    echo ‘XML文件已生成’;

    // 递归函数,将数组转换成XML
    function arrayToXml($array, &$xml) {
    foreach($array as $key => $value) {
    // 如果$value是数组,则创建一个子节点
    if(is_array($value)) {
    $subnode = $xml->addChild($key);
    arrayToXml($value, $subnode);
    }
    else {
    // 如果$value不是数组,则直接在当前节点下添加一个元素
    $xml->addChild($key, $value);
    }
    }
    }
    ?>
    “`

    上面的代码首先创建了一个数组 `$data`,然后创建了一个 `SimpleXMLElement` 对象 `$xml`。接下来调用 `arrayToXml` 函数将数组转换成XML,最后将XML保存到文件 `data.xml`。在 `arrayToXml` 函数中,通过递归的方式将数组中的每个元素添加到XML中。

    使用这个代码示例,你可以将其他的数组转换成XML,只需将要转换的数组和XML对象传递给 `arrayToXml` 函数即可。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    1. 首先,要将数组转换为XML,需要创建一个空的XML文档对象。可以使用`new DOMDocument()`来创建一个新的文档对象。

    2. 为了将数组转换为XML,需要使用循环遍历数组中的每个元素。可以使用foreach循环来实现这一点。

    3. 在循环中,将数组的每个元素转换成XML的元素。可以使用`createElement()`方法创建一个新的元素节点,并使用`appendChild()`方法将其添加到父节点中。

    4. 对于数组中的每个元素,为其添加属性和值。可以使用`setAttribute()`方法为元素添加属性,使用`nodeValue`属性设置元素的值。

    5. 最后,使用`saveXML()`方法将XML文档保存到一个文件中。可以在方法中指定文件名和路径。

    以下是一个示例代码,将数组转换为XML:

    “`php
    createElement(“data”);
    $xml->appendChild($root);

    // 数组示例
    $data = array(
    array(“name” => “John”, “age” => 25, “city” => “New York”),
    array(“name” => “Mary”, “age” => 30, “city” => “London”),
    array(“name” => “Michael”, “age” => 35, “city” => “Paris”)
    );

    // 将数组转换为XML
    foreach ($data as $item) {
    $element = $xml->createElement(“person”);
    foreach ($item as $key => $value) {
    $attribute = $xml->createAttribute($key);
    $attribute->nodeValue = $value;
    $element->appendChild($attribute);
    }
    $root->appendChild($element);
    }

    // 保存XML文档到文件
    $xml->save(“data.xml”);
    ?>
    “`

    这样,数组就成功地转换为了XML,并保存为了一个名为”data.xml”的文件。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    将PHP数组转换为XML是一项常见的操作,特别是在与其他系统进行数据交互时。本文将从方法和操作流程两个方面详细介绍如何将PHP数组转换为XML。

    ## 方法一:使用SimpleXML扩展

    1. 确保已启用SimpleXML扩展,可以通过检查php.ini文件或使用phpinfo()函数来确认。如果未启用,可以在php.ini文件中的`extension=php_xmlrpc.dll`添加扩展。

    2. 创建一个空的SimpleXMLElement对象,该对象将用于存储数组转换后的XML数据。

    “`php
    $xml = new SimpleXMLElement(‘‘); // 创建一个根节点
    “`

    3. 使用递归函数将PHP数组转换为XML。这可以通过遍历数组的键和值来实现。

    “`php
    function arrayToXml($array, &$xml) {
    foreach($array as $key => $value) {
    if(is_array($value)) {
    if(!is_numeric($key)){
    $subnode = $xml->addChild(“$key”);
    arrayToXml($value, $subnode);
    } else{
    $subnode = $xml->addChild(“item$key”);
    arrayToXml($value, $subnode);
    }
    } else {
    $xml->addChild(“$key”, htmlspecialchars(“$value”));
    }
    }
    }
    “`

    4. 调用arrayToXml函数将数组转换为XML。

    “`php
    $array = array(
    ‘name’ => ‘John Doe’,
    ‘age’ => 30,
    ’email’ => ‘johndoe@example.com’,
    ‘phone’ => array(
    ‘home’ => ‘1234567890’,
    ‘work’ => ‘9876543210’
    )
    );

    arrayToXml($array, $xml);

    echo $xml->asXML(); // 输出XML内容
    “`

    ## 方法二:使用DOMDocument类

    1. 创建一个DOMDocument对象,用于创建XML文档。

    “`php
    $dom = new DOMDocument(‘1.0’, ‘UTF-8’);
    $dom->formatOutput = true;
    “`

    2. 创建根元素节点。

    “`php
    $root = $dom->createElement(‘root’);
    $dom->appendChild($root);
    “`

    3. 创建函数来递归数组并将其转换为XML。类似于前面的方法,我们将遍历数组的键和值。

    “`php
    function arrayToXml($array, &$dom, &$parent) {
    foreach($array as $key => $value) {
    if(is_array($value)) {
    $node = $dom->createElement(is_numeric($key) ? “item$key” : “$key”);
    $parent->appendChild($node);
    arrayToXml($value, $dom, $node);
    } else {
    $node = $dom->createElement(“$key”, htmlspecialchars(“$value”));
    $parent->appendChild($node);
    }
    }
    }
    “`

    4. 调用arrayToXml函数将数组转换为XML。

    “`php
    $array = array(
    ‘name’ => ‘John Doe’,
    ‘age’ => 30,
    ’email’ => ‘johndoe@example.com’,
    ‘phone’ => array(
    ‘home’ => ‘1234567890’,
    ‘work’ => ‘9876543210’
    )
    );

    arrayToXml($array, $dom, $root);

    echo $dom->saveXML(); // 输出XML内容
    “`

    这两种方法都能有效地将PHP数组转换为XML,选择哪种方法取决于个人偏好和项目需求。无论选择哪种方法,最终都将获得一个符合XML格式的字符串。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部