in reply to namespaces in XML::RSS::Parser::Element

Namespace URIs are case sensitive. The namespace your file uses is different to the namespace in the module documentation:
file: http://www.itunes.com/dtds/podcast-1.0.dtd doc: http://www.itunes.com/DTDs/Podcast-1.0.dtd

You can register a new prefix:

#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use XML::RSS::Parser; my $p = XML::RSS::Parser->new; $p->register_ns_prefix('lc_itunes', 'http://www.itunes.com/dtds/podcast-1.0.dtd'); my $feed = $p->parse_file(*DATA); for my $item ($feed->query('//item')) { say $item->query('lc_itunes:summary')->text_content; } __DATA__ <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="content" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/"> <channel> <title>Title</title> <link>file:///</link> <description/> <dc:language>cs_CZ</dc:language> </channel> <item> <guid isPermaLink="false">5460304c-e284-4f84-b4a3-2cccba31fb81</ +guid> ...

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

Replies are listed 'Best First'.
Re^2: namespaces in XML::RSS::Parser::Element
by wintermute_115 (Novice) on Apr 11, 2024 at 23:35 UTC
    Thank you! I don't think I'd ever have noticed that without the pointer.