JMS 序列化程序。将 XML 反序列化为对象集合

问题描述 投票:0回答:0

所以:我想通过解析这个 xml 来获取对象的集合:

<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
    <channel>
        <title>Title of the portal</title>
        <link>https://some portal link</link>
        <lastBuildDate>Tue, 28 Mar 2023 04:33:05 +0300</lastBuildDate>
        <pubDate>Tue, 28 Mar 2023 04:33:00 +0300</pubDate>
        <item>
            <title>Title 1</title>
            <link>News link 1</link>
            <pubDate>Tue, 28 Mar 2023 00:34:00 +0300</pubDate>
        </item>
        <item>
            <title>Title 2</title>
            <link>News link 2</link>
            <pubDate>Tue, 28 Mar 2023 00:34:00 +0300</pubDate>
        </item>
    </channel>
</rss>

问题是,我需要添加到我的 DTO 中的项目数组位于“通道”内。我可以不创建包含数组的 ChannelDTO 吗?

我现在的 DTO:

<?php

namespace App\DTO;

use JMS\Serializer\Annotation as JMS;

#[JMS\AccessType(type: 'public_method')]
class NewsDTO
{
    #[JMS\Type(name: 'string')]
    private readonly string $link;

    public function setLink(string $link): void
    {
        $this->link = $link;
    }

    public function getLink(): string
    {
        return $this->link;
    }
}

我尝试阅读文档、其他答案、谷歌搜索,但似乎我被卡住了。

php
© www.soinside.com 2019 - 2024. All rights reserved.