Джексон XML десериализация только указанных тегов - PullRequest
0 голосов
/ 03 октября 2018

В настоящее время я пытаюсь десериализовать канал RSS с помощью Jackson FasterXML на Kotlin.

Канал RSS выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet title="XSL_formatting" type="text/xsl" href="/shared/bsp/xsl/rss/nolsol.xsl"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[BBC News - Home]]></title>
        <description><![CDATA[BBC News - Home]]></description>
        <link>https://www.bbc.co.uk/news/</link>
        <image>
            <url>https://news.bbcimg.co.uk/nol/shared/img/bbc_news_120x60.gif</url>
            <title>BBC News - Home</title>
            <link>https://www.bbc.co.uk/news/</link>
        </image>
        <generator>RSS for Node</generator>
        <lastBuildDate>Wed, 03 Oct 2018 13:30:27 GMT</lastBuildDate>
        <copyright><![CDATA[Copyright: (C) British Broadcasting Corporation, see http://news.bbc.co.uk/2/hi/help/rss/4498287.stm for terms and conditions of reuse.]]></copyright>
        <language><![CDATA[en-gb]]></language>
        <ttl>15</ttl>
        <item>
            <title><![CDATA[Theresa May: Tories must be a party for everyone]]></title>
            <description><![CDATA[Theresa May pledges to boost council house-building and says austerity is over, in her big speech.]]></description>
            <link>https://www.bbc.co.uk/news/uk-politics-45725615</link>
            <guid isPermaLink="true">https://www.bbc.co.uk/news/uk-politics-45725615</guid>
            <pubDate>Wed, 03 Oct 2018 13:14:22 GMT</pubDate>
            <media:thumbnail width="976" height="549" url="http://c.files.bbci.co.uk/0CCE/production/_103687230_hi049731823_crop.jpg"/>
        </item>
        <item>
            <title><![CDATA[May dances on to stage to Abba ]]></title>
            <description><![CDATA[With a nod to stage malfunctions and the cough which dogged her 2017 Conservative conference speech, Theresa May danced her way on to the 2018 stage.]]></description>
            <link>https://www.bbc.co.uk/news/uk-politics-45733091</link>
            <guid isPermaLink="true">https://www.bbc.co.uk/news/uk-politics-45733091</guid>
            <pubDate>Wed, 03 Oct 2018 11:14:17 GMT</pubDate>
            <media:thumbnail width="768" height="432" url="http://c.files.bbci.co.uk/18EA/production/_103687360_may2.jpg"/>
        </item>
        <item>
            <title><![CDATA[Skripal poisoning: Putin denounces ex-spy as 'scum']]></title>
            <description><![CDATA[Russia's president complains the media are spending too much time on the man poisoned in Salisbury.]]></description>
            <link>https://www.bbc.co.uk/news/world-europe-45732221</link>
            <guid isPermaLink="true">https://www.bbc.co.uk/news/world-europe-45732221</guid>
            <pubDate>Wed, 03 Oct 2018 13:19:34 GMT</pubDate>
            <media:thumbnail width="976" height="549" url="http://c.files.bbci.co.uk/1692/production/_103687750_049734043-1.jpg"/>
        </item>
    </channel>
</rss>

Меня интересует только десериализация следующего:

Channel:
    Title
    Link
    Image
Item:
    Title
    Description
    Link
    pubDate
    media:thumbnail

В настоящее время я могу отлично десериализовать эту строку XML - однако мне нужно явно указать, какие теги я хочу игнорировать, используя @JsonIgnoreProperties("generator", "ttl") и т. Д.

Это вызывает проблемуоднако - поскольку в некоторых каналах есть дополнительные теги, и я не могу просмотреть все возможные каналы, чтобы вручную вводить значения, которые следует игнорировать.

Я пытался решить эту проблему самостоятельно и искал в Интернете похожие вопросы - но я не знаюКажется, я не нашел ни одного вопроса или решения, которые бы соответствовали моей проблеме.

Поэтому мой вопрос таков: существует ли способ десериализации только указанных тегов и игнорирования всего остального (без явного указания тегов, которые следует игнорировать) с использованием Джексона?FasterXML или подобный фреймворк?

...