shanyuliang/array2xml

数组转XML工具

1.0.1 2019-09-02 02:27 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:04 UTC


README

数组转XML工具。

安装

$ composer require shanyuliang/array2xml

用法

  1. 普通
use Shanyuliang\Array2xml\Array2xml;

$arr = [
    'aaa' => [
        'bbb' => 'ccc'
    ]
];
$array2xml = new Array2xml();

$result = $array2xml->generate($arr);

结果

{
    'code'  => 0,
    'errer' => '',
    'data'  => '<?xml version="1.0" encoding="utf-8"?>
                <aaa>
                    <bbb>ccc</bbb>
                </aaa>'
}
  1. 为键添加属性和cdata
use Shanyuliang\Array2xml\Array2xml;

$arr = [
    'aaa' => [
        'bbb' => 'ccc',
        'eee' => 'fff'
    ]
];

//add charset and version, default charset: utf-8 version 1.0
$array2xml = new Array2xml('utf-8', '1.0');

//add attribute for key
$attribute = [
    'aaa' => [
        'xmlns' => 'https://www.shanyuliang.com',
        'date'  => '2019-8-31'
    ]
];

//add cdata for key
$cdata = ['bbb'];

$result = $array2xml->generate($arr, $attribute, $cdata);

结果

{
    'code'  => 0,
    'errer' => '',
    'data'  => '<?xml version="1.0" encoding="utf-8"?>
                <aaa xmlns="https://www.shanyuliang.com" date="2019-8-31">
                    <bbb><![CDATA[ccc]]></bbb>
                    <eee>fff</eee>
                </aaa>'
}

3.多重列表

use Shanyuliang\Array2xml\Array2xml;

$arr = [
    'xmlHead'   => [
        'A' => 'aaa',
        'B' => 'bbb',
        'C' => [
            'Aa' => '111',
            'Ab' => '222'
        ],
        'D|1'   => [
            'D1'    => 'd1'
        ],
        'D|2'   => [
            'D2'    => 'd2'
        ]
    ]
];

$array2xml = new Array2xml();

$result = $array2xml->generate($arr);

结果

{
    'code'  => 0,
    'errer' => '',
    'data'  => '<?xml version="1.0" encoding="utf-8"?>
                <xmlHead>
                    <A>aaa</A>
                    <B>bbb</B>
                    <C>
                        <Aa>111</Aa>
                        <Ab>222</Ab>
                    </C>
                    <D>
                        <D1>d1</D1>
                    </D>
                    <D>
                        <D2>d2</D2>
                    </D>
                </xmlHead>'
}

在Laravel中使用

public function getXml(Array2xml $array2xml) 
{
    $arr = [
        'aaa' => [
            'bbb' => 'ccc',
            'eee' => 'fff'
        ]
    ];
    $response = $array2xml->generate($arr);
}

服务模型

public function getXml() 
{
    $arr = [
        'aaa' => [
            'bbb' => 'ccc',
            'eee' => 'fff'
        ]
    ];
    $response = app('array2xml')->generate($arr);
}

贡献

您可以通过以下三种方式之一进行贡献

  1. 使用 问题追踪器 提交错误报告。
  2. 问题追踪器 上回答问题或修复错误。
  3. 贡献新功能或更新wiki。

代码贡献过程并不十分正式。您只需确保遵循PSR-0、PSR-1和PSR-2编码规范。任何新的代码贡献都必须附有适用的单元测试。

许可证

MIT