此包已被弃用且不再维护。未建议替代包。

用于SimpleXMLElement的XML构建器

v1.0.0 2014-10-31 23:33 UTC

This package is not auto-updated.

Last update: 2018-07-08 20:50:09 UTC


README

AntiMattr XML库,为SimpleXMLElement提供XML构建支持。

安装

将以下内容添加到您的composer.json文件中

{
    "require": {
        "antimattr/xml": "~1.0@stable"
    }
}

通过运行以下命令安装库

composer install

如果一切顺利,XML库现在可以在vendor/antimattr/xml中找到。

示例

测试目录中有许多示例,以下是基本示例

注意:支持普通数组。要处理“属性”以及“索引数组与关联数组”等场景,请注意数组键的存在

'_name'
'_attributes'
'_values'
单个节点
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <product/>
</root>
$root = $this->builder
    ->setRoot('root')
    ->create();

$data = array(
    'product' => array()
);
$this->builder->add($root, $data);

$xml = $root->asXML();
多个节点
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <product/>
  <foo/>
  <bar/>
</root>
$root = $this->builder
    ->setRoot('root')
    ->create();

$data = array(
    'product' => array(),
    'foo' => array(),
    'bar' => array()
);
$this->builder->add($root, $data);

$xml = $root->asXML();
多个重复节点
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <product/>
  <product/>
  <product/>
</root>
$root = $this->builder
    ->setRoot('root')
    ->create();

$data = array(
    0 => array('_name' => 'product'),
    1 => array('_name' => 'product'),
    2 => array('_name' => 'product')
);
$this->builder->add($root, $data);

$xml = $root->asXML();
子节点和属性
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <product>
  	<item foo5="bar5" example5="test5"/>
  </product>
</root>
$root = $this->builder
    ->setRoot('root')
    ->create();

$data = array(
    'product' => array(
        '_values' => array(
            'item' => array(
                '_attributes' => array('foo5' => 'bar5', 'example5' => 'test5')
            ),
        )
    )
);
$this->builder->add($root, $data);
$xml = $root->asXML();

拉取请求

拉取请求 - PSR标准

请使用预提交钩子将所有代码修复到PSR标准

一次性安装

./bin/install.sh 
Copying /antimattr-xml/bin/pre-commit.sh -> /antimattr-xml/bin/../.git/hooks/pre-commit

拉取请求 - 测试

请确保测试通过

$ vendor/bin/phpunit tests

拉取请求 - 代码嗅探器和修复器

如果预提交钩子未运行,请确保手动运行修复器/嗅探器

$ vendor/bin/php-cs-fixer fix src/
$ vendor/bin/php-cs-fixer fix tests/