Я потратил слишком много времени, пытаясь понять это. Я использую XML: RSS и Perl для чтения / анализа RSS-канала Ebay. В пределах области я вижу эти записи:
<rx:BuyItNowPrice xmlns:rx="urn:ebay:apis:eBLBaseComponents">1395</rx:BuyItNowPrice>
<rx:CurrentPrice xmlns:rx="urn:ebay:apis:eBLBaseComponents">1255</rx:CurrentPrice>
Однако я не могу понять, как захватить детали во время цикла. Я написал регулярное выражение, чтобы захватить их:
@current_price = $item =~ m/\<rx\:CurrentPrice.*\>(\d+)\<\/rx\:CurrentPrice\>/g;
, который работает, если вы поместите вышеуказанную запись CurrentPrice в отдельную строку, но не во время чтения сценария через RSS-канал.
Я могу получить большую часть необходимой информации из области элемента-> описания (# ставки, время окончания аукциона, цена BIN, эскиз и т. Д.), Но было бы лучше, если бы я мог получить информацию из кормить без меня, чтобы иметь дело с захватом всей этой информации вручную.
Если кто-нибудь знает, как получить пользовательские поля из RSS-канала (если не считать написания регулярных выражений для анализа всего канала без модуля), любая помощь / понимание будет приветствоваться.
Вот код, с которым я работаю:
$my_limit = 0;
use LWP::Simple;
use XML::RSS;
$rss = XML::RSS->new();
$data = get( $mylink );
$rss->parse( $data );
$channel = $rss->{channel};
$NumItems = 0;
foreach $item (@{$rss->{'items'}}) {
if($NumItems > $my_limit){
last;
}
@current_price = $item =~ m/\<rx\:CurrentPrice.*\>(\d+)\<\/rx\:CurrentPrice\>/g;
print "$current_price[0]";
}