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

How to parse the CAP id instead of a hashed value with Weather::NOAA::Alert in Perl

感谢以下解决方案中接受的答案,我现在能够从 NOAA 警报中提取我需要的大部分值:perl Data::Dumper to extract key values

我也想解析“CAP id”,但是当我尝试时,我收到一个散列值而不是 URL。

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

我得到的是:HASH(0x26384c0)

我想这只能通过修改 alert.pm 来实现: https://github.com/mikegrb/Weather-NOAA-Alert/blob/master/lib/Weather/NOAA/Alert.pm 如果我对这个问题有足够的了解,可能是因为 XML::Simple?

通常,我会使用 XPath 来解析 XML 之类的数据,但对于这种 ATOM 格式,我迷路了。

最终,我只想将解析后的变量添加到 SQL 数据库中。 NOAA 希望从 CAP v1.1 过渡到 v1.2(什么时候,我不知道),也许我应该考虑使用其他东西。

在您的 previous code 中,您可以像这样获取 hashref $events->{'TXC301'} 的单个键:

my @keys = keys %{$events->{'TXC301'}}
my $alert_url = $keys[0]

现在 $alert_url 应该包含您提到的 URL。

这是否回答了您的问题?