如何在 Perl 中使用 Weather::NOAA::Alert 解析 CAP id 而不是散列值
Posted
技术标签:
【中文标题】如何在 Perl 中使用 Weather::NOAA::Alert 解析 CAP id 而不是散列值【英文标题】:How to parse the CAP id instead of a hashed value with Weather::NOAA::Alert in Perl 【发布时间】:2021-03-29 15:29:07 【问题描述】:感谢以下解决方案中接受的答案,我现在能够从 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(什么时候,我不知道),也许我应该考虑使用其他东西。
【问题讨论】:
【参考方案1】:在您的previous code 中,您可以像这样获取hashref $events->'TXC301'
的单个键:
my @keys = keys %$events->'TXC301'
my $alert_url = $keys[0]
现在$alert_url
应该包含您提到的网址。
这能回答你的问题吗?
【讨论】:
非常感谢@wsdookadr 这就像一个魅力。以上是关于如何在 Perl 中使用 Weather::NOAA::Alert 解析 CAP id 而不是散列值的主要内容,如果未能解决你的问题,请参考以下文章
使用 Weasyprint 的 PDF 输出不显示图像(Django)