1

我需要序列化一个日期数组(就是这样,而不是包含日期数组的对象!)并且我希望能够控制它是如何完成的:

$serializer = SerializerBuilder::create()->build();
$dates = array(new DateTime('1990-07-20'), new DateTime('2000-07-20'));
$serialized = $serializer->serialize($dates, 'xml');

目前我得到类似的东西:

<result>
  <entry><![CDATA[1990-07-20T00:00:00+0000]]><entry/>
  <entry><![CDATA[2000-07-20T00:00:00+0000]]><entry/>
</result>

我想配置如下内容:不同的标签,不同的日期格式,摆脱 CDATA。得到这样的东西:

  <dates>
    <date>1990-07-20<date/>
    <date>2000-07-20<date/>
  </dates>

我正在考虑的一个选项是创建一个包含数组的 Dates 对象。然后我可以使用注释甚至自定义处理程序来为日期添加格式并描述 xml 标签。但我认为应该有一个更简单的方法。我真的不想创建一个包装器对象只是为了告诉一个日期数组应该如何序列化。不过,这不是一个糟糕的解决方案。但是,如果您想到更好的方法或回答上述问题,请告诉我。谢谢!

4

0 回答 0