Я потратил слишком много времени, пытаясь понять это. Я использую XML: RSS и Perl для чтения/анализа Ebay RSS-канала. В пределах области я вижу эти данные:Чтение пользовательских значений в Ebay RSS-канале (XML :: RSS-модуль)
<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]";
}
Спасибо - я рассматриваю это как возможное решение. – user356619