ronappleton/php-to-xml

将 Json 字符串、对象或数组转换为简单 XML

dev-master 2020-08-19 01:35 UTC

This package is auto-updated.

Last update: 2024-09-19 10:33:37 UTC


README

Php to xml 是一个简单的包,允许将 Json 字符串、Json 对象和 Php 数组转换为有效的 XML。

这个包的初衷是减少在视图中构建 XML。当生成要发送的 XML 时,这个包应该允许代码更加简洁,同时也填补了那些喜欢使用 json 或数组构建的人的空白。

支持通过将一个名为 attributes 的数组添加到节点中,并用属性名称和值填充来支持属性。

安装

composer require ronappleton/php-to-xml

用法

可以通过使用 RonAppleton\PhpToXml\Config 来配置转换器,尽管如果没有传递,将使用默认配置。

要使用转换器,添加 RonAppleton\PhpToXml\PhpToXml 的使用语句,并使用静态方法 PhpToXml::convert($array, $config),其中 $config 是可选的。

$array = [
    'RootNode' => [
        'SecondaryNode' => [
            'attributes' => [
                'firstAttribute' => 'firstAttributeValue',
                'secondAttribute' => 'secondAttributeValue',
            ],
            'SecondaryChildValueKey' => 'SecondaryChildValue',
            'SecondaryChildValueKey2' => 'SecondaryChildValue2',
        ]
    ]
];
{
    "RootNode": {
        "SecondaryNode": {
            "attributes": {
                "firstAttribute": "firstAttributeValue",
                "secondAttribute": "secondAttributeValue"
            },
            "SecondaryChildValueKey": "SecondaryChildValue",
            "SecondaryChildValueKey2": "SecondaryChildValue2"
        }
    }
}

默认情况下,不允许数字键,将会抛出异常。这可以通过使用 $config->setPrependNumericKeys(true) 来配置,这将默认将单词 item 前缀添加到任何数字键上,因此 0 变为 item0,1 变为 item1,依此类推。在转换过程中将删除数字,因此会添加多个同名节点。前缀可以使用 $config->setNumericKeyIndex('name'); 来更改,其中 name 是你希望使用的节点名称。

以下方法也存在用于配置。

setBoolAsString() 以在 xml 中产生 true 而不是 1。

setNumbersToStrings() 以将数字转换为字符串。

setHtmlSpecialCharacters() 以编码字符串。

setStringsAsCdata() 以将所有字符串包装在 CDATA 标签中。