Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Perl中的Weather::NOAA::Alert解析CAP id而不是散列值_Perl_Noaa - Fatal编程技术网

如何用Perl中的Weather::NOAA::Alert解析CAP id而不是散列值

如何用Perl中的Weather::NOAA::Alert解析CAP id而不是散列值,perl,noaa,Perl,Noaa,感谢以下解决方案中的公认答案,我现在能够从NOAA警报中提取我需要的大部分值: 我也想解析CAP id,但是当我尝试时,我会收到一个哈希值,而不是URL 例如,使用前面提到的线程,我想要解析的是: http://alerts.weather.gov/cap/wwacapget.php?x=TX12516CBE9400.FloodWarning.12516CC068C0TX.MAFFLWMAF.f21e7ce7cf8e930ab73a110c4d912576 取而代之的是:HASH0x26384c

感谢以下解决方案中的公认答案,我现在能够从NOAA警报中提取我需要的大部分值:

我也想解析CAP id,但是当我尝试时,我会收到一个哈希值,而不是URL

例如,使用前面提到的线程,我想要解析的是: http://alerts.weather.gov/cap/wwacapget.php?x=TX12516CBE9400.FloodWarning.12516CC068C0TX.MAFFLWMAF.f21e7ce7cf8e930ab73a110c4d912576

取而代之的是:HASH0x26384c0

我想这只有通过修改alert.pm才能实现: 如果我对这个问题读得足够多,可能是因为XML::Simple

通常,我会使用XPath解析类似XML的数据,但对于这种ATOM格式,我就不知道了

最后,我只是希望将解析后的变量添加到SQL数据库中。由于NOAA希望从CAP v1.1过渡到v1.2,我没有任何线索,也许我应该考虑使用其他东西。

在您的中,您可以获得hashref$events->{TXC301'}的单键,如下所示:

my @keys = keys %{$events->{'TXC301'}}
my $alert_url = $keys[0]
现在$alert_url应该包含您提到的url


这回答了你的问题吗?

非常感谢@wsdookadr的魅力。