Witam, piszę aktualnie projekt i zastanawiam się jak ugryźć problem. Mam za zadanie parsować plik xml, a dokładnie RSS, jednak nie wiem w jaki sposób poradzić sobie z różnymi modelami(?) plików. Przykład:

rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">
<channel>
<title>
xxxx</title>
<link>xxxx</link>
<atom:link href="xxxx" rel="self" type="application/rss+xml"/>
<description>
xxxx</description>
<language>pl-PL</language>
<item>
<title>
xxxx
</title>
<link>
xxxx
</link>
<guid isPermaLink="false">
xxxx
</guid>
<pubDate>Wed, 07 Feb 2018 18:46:33 +0100</pubDate>
<description>
xxx
</description>
</item>
<item>
<title>
xxxx</title>
<link>
xxxx</link>
<guid isPermaLink="false">
xxx</guid>
<pubDate>Wed, 07 Feb 2018 17:46:58 +0100</pubDate>
<description>
<![CDATA[
xxx]]>
</description>
</item>

oraz jekyll:

<feed xmlns="http://www.w3.org/2005/Atom">
<generator uri="https://jekyllrb.com/" version="3.6.0.pre.beta1">Jekyll</generator>
<link href="xxx" rel="self" type="application/atom+xml"/>
<link href="xxxx" rel="alternate" type="text/html"/>
<updated>xxxx</updated>
<id>xxxx</id>
<title type="html">xxxx</title>
<subtitle>
xxx</subtitle>
<entry>
<title type="html">xxx</title>
<published>xxx</published>
<updated>xxxx</updated>
<id>
xxxx
</id>
<content type="html" xml:base="xxx">
xxx
</content>
<author>
<name>xxx</name>
</author>
<summary type="html">
...

Muszę przeparsować owe pliki i dostać się do ich elementów tj. item/entry. Macie jakiś pomysł jak napisać uniwersalny program wyciągający te dane?