【发布时间】:2019-09-28 00:34:56
【问题描述】:
我已经成功地使用 Symfony 序列化器将对象序列化为 XML。但是对于下面显示的 xml,我无法将 xml 序列化和反序列化为简单类型。
我用 XmlEncoder 和 Normalizer 尝试了几件事,但似乎没有任何效果。
例如,xml <response>Hello there</response> 需要反序列化为包含“Hello there”的字符串变量。
类似地,如下所示的 xml 数组反序列化为 ['Hello World', 'Hello', 'Hi']。
<responses>
<response>Hello World</response>
<response>Hello </response>
<response>Hi</response>
</responses>
这甚至可以通过 Symfony Serializer 实现,还是我必须编写一些自定义代码来处理这个?
【问题讨论】:
-
你试过...
$serializer->deserialize($data, '[]', 'xml')? -
如果没有帮助,请尝试使用带有
$serializer->decode($data, 'xml')的序列化程序,但两种情况下的格式可能略有不同。 -
@Jakumi 第一个解决方案给出“无法对 [] 类型的对象进行非规范化,找不到支持的规范化器。”第二个解决方案似乎正在完成这项工作,谢谢!很惊讶它不在symfony.com/doc/current/components/serializer.html的文档中
-
可能,因为它有点不寻常;o)
标签: php xml symfony xmlserializer