微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony 反序列化除根节点之外的嵌套节点

如何解决Symfony 反序列化除根节点之外的嵌套节点

我尝试将 XML 结构反序列化为 DTO/Entity 对象,但我无法跳过根节点,并且反序列化和映射到 DTO 不起作用。问题是我需要跳过的根节点。任何人都可以给我建议吗?有没有人解决过这样的问题?

<tours last_modified="2021-02-25 20:49:20">
    <tour>
        <tour_id>275</tour_id>
        <tour_title>Hotel Magic</tour_title>
        <tour_code>DKSLKSLe</tour_code>
    </tour>
</tours>

如果我从 XML 文件删除根节点 <tours>,反序列化工作。

class Tour
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string")
     */
    private $title;

    /**
     * @ORM\Column(type="string")
     */
    private $code;
}
$nameConverter = new TourPrefixNameConverter();
$encoders = [new XmlEncoder()];
$normalizers = [new Objectnormalizer(null,$nameConverter,null,[
     AbstractObjectnormalizer::DEEP_OBJECT_TO_POPULATE => true,])];
$serializer = new Serializer($normalizers,$encoders);
      
$tour = $serializer->deserialize($data,'App\Entity\Tour','xml');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。