hallo,
ich habe folgendes problem.
ich bekomme fogende rss datei, auf deren inhalt ich keinen einfluss habe.
<?xml version='1.0' encoding='ISO-8859-1' ?>
<rss version='2.0' xmlns:bb='http://www.blablabla2.de'>
<channel>
<title>der titel</title>
<link>http://www.inter.net</link>
<description>beschreibung</description>
<managingEditor>alle@inter.net</managingEditor>
<image>
<url>http://www.inter.net/logo.gif</url>
<title>logo</title>
<link>http://www.inter.net</link>
<width>100</width>
<height>50</height>
</image>
<language>de</language>
<lastBuildDate>2006-06-29T00:00:00</lastBuildDate>
<copyright>none</copyright>
<item>
<title>juhuu</title>
<description>die juhuu beschreibung</description>
<bb:name>linkliste</bb:name>
<bb:einzelteile>
<bb:einzelurl>http://url1.de</bb:einzelurl>
<bb:einzeltext>der text zu http://url1.de</bb:einzeltext>
</bb:einzelteile>
<bb:einzelteile>
<bb:einzelurl>http://url2.de</bb:einzelurl>
<bb:einzeltext>der text zu http://url2.de</bb:einzeltext>
</bb:einzelteile>
<bb:einzelteile>
<bb:einzelurl>http://url3.de</bb:einzelurl>
<bb:einzeltext>der text zu http://url3.de</bb:einzeltext>
</bb:einzelteile>
</item>
</channel>
</rss>
via perl moechte ich diese parsen.
ich komme an alle elemente, bis auf die des namespace bb.
was mache ich falsch und kann mir da jemand helfen?
ich habe es mit XML::RSS versucht
#!/usr/bin/perl
use XML::RSS;
my $rss = new XML::RSS ();
$rss->parsefile('datei.xml');
print $rss->{items}->[0]->{title}."\n"; #funktioniert
print $rss->{items}->[0]->{bb}->{name}."\n"; #funktioniert nicht
print $rss->{items}->[0]->{bb}->{einzelteile}->[0]->{einzelurl}."\n"; #funktioniert schon gar nicht
und auch mit XML::RSS::Parser
#!/usr/bin/perl
use XML::RSS::Parser;
use FileHandle;
my $p = XML::RSS::Parser->new;
XML::RSS::Parser->register_ns_prefix('bb','http://irgendeine.url'); #???
my $fh = FileHandle->new('datei.xml');
my $feed = $p->parse_file($fh);
foreach my $aussen ( $feed->query('//item') ) {
my $innen=XML::RSS::Parser->ns_qualify($aussen, 'bb'); #???
print $aussen->query('title')->text_content."\n"; #funktioniert
print $innen->query('name')->text_content."\n"; #funktioniert nicht
bei XML::RSS::Parser hab ich ausserdem ueberhaupt keine ahnung, wie ich an das array bb:einzelteile komme.
sowohl XML::RSS als auch XML::RSS::Parser sind auf dem aktuellen stand, aber ich mache wohl jede menge denkfehler.
bin fuer jede hilfe dankbar.