将 XML/JSON 文档从一个标准转换为另一个标准的包

安装: 616

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 1

开放性问题: 0

类型:项目

dev-master 2016-04-26 07:13 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:04:04 UTC


README

一个用于使用 YAML 或 JSON 配置翻译 XML/JSON 文件的翻译器。

什么是 "Ook"?

在 Larry Niven 的《Discworld》系列中,图书馆员是早期变成猩猩的巫师。他完全理解摩普克语(英语),但总是用猩猩的口吻说话,使用像 "Ook" 和 "Eek" 这样的词。大多数人类角色理解起来没有太大问题,但偶尔也会有人不熟悉图书馆员遇到他,无法完全理解那个特定的 "Ook" 意思。图书馆员试图通过编写猩猩-摩普克语词典来解决这一问题,但还没有超出 "Ook"。

哦,我明白了。

是的,很有趣,对吧?

快速入门

定义配置

Ook 在定义翻译数组之间的规则时使用 "点" 表示法。这里是一个点表示法的快速示例

$array = ['items' => [
    'item' => [
        ['name' => 'computer', 'price' => 1000],
        ['name' => 'monitor', 'price' => 150]
    ]
];

Arr::get('items.item.0.price') // 1000

我们将使用同样的方法来定义 XML 的规则集

sample.xml

<items>
    <item>
        <name>computer</name>
        <price>1000</price>
    </item>
    <item>
        <name>monitor</name>
        <price>150</price>
    </item>
</items>

Ook 将将其转换为具有 item.price 键的数组。让我们假设我们想将 item.price 转换为 inventory.item.price

config.yaml

inventory.item.*.name: items.item.*.name
inventory.item.*.price: items.item.*.price

要翻译它,我们只需运行

$librarian = new Ook\Librarian('sample.xml', 'config.yaml');
$output = $librarian->transform();

这将返回

Array
(
    [inventory] => Array
        (
            [item] => Array
                (
                    [0] => Array
                        (
                            [name] => computer
                            [price] => 1000
                        )

                    [1] => Array
                        (
                            [name] => monitor
                            [price] => 150
                        )

                )

        )

)

其他详细信息

请查看 /examples 目录以获取更多示例。