当 XML 位于对象中时如何使用 XML::Simple?

发布于 2024-10-04 13:41:28 字数 1031 浏览 1 评论 0原文

我有这段代码

#!/usr/bin/perl -w

use strict;
use URI;
use LWP::UserAgent;
use Data::Dumper;
use XML::Simple;

my $DBVersion = '';

my $url = URI->new('https://example.com');

$url->query_form(
    'sql' => 'select email,firstname from account for xml auto',
    'DBVersion' => $DBVersion
    );

my $response = LWP::UserAgent->new->get($url);
die "Error: ", $response->status_line unless $response->is_success;

print $response->content;

现在我想在 $response->content 上使用 XML::Simple

我可以看到他们使用了

my $doc = $xs1->XMLin($file);

foreach my $key (keys (%{$doc->{species}})){
   print $doc->{species}->{$key}->{'common-name'} . ' (' . $key . ') ';
   print $doc->{species}->{$key}->{conservation}->final . "\n";
}

但是我的XML数据不是在文件中,而是在 LWP 模块创建的对象中。

如何使用 XML::Simple 解析该数据?

I have this code

#!/usr/bin/perl -w

use strict;
use URI;
use LWP::UserAgent;
use Data::Dumper;
use XML::Simple;

my $DBVersion = '';

my $url = URI->new('https://example.com');

$url->query_form(
    'sql' => 'select email,firstname from account for xml auto',
    'DBVersion' => $DBVersion
    );

my $response = LWP::UserAgent->new->get($url);
die "Error: ", $response->status_line unless $response->is_success;

print $response->content;

And now I would like to use XML::Simple on $response->content.

From can I see that they use

my $doc = $xs1->XMLin($file);

foreach my $key (keys (%{$doc->{species}})){
   print $doc->{species}->{$key}->{'common-name'} . ' (' . $key . ') ';
   print $doc->{species}->{$key}->{conservation}->final . "\n";
}

But my XML data in not in a file, but in an object created by the LWP module.

How can I parse that data with XML::Simple?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流殇 2024-10-11 13:41:28

XMLin() 可以接受 XML 字符串作为参数:

use XML::Simple;
my $ref = XMLin($response->content);

参见 perldoc XML::Simple 了解详细信息。

XMLin() can accept a string of XML as a parameter:

use XML::Simple;
my $ref = XMLin($response->content);

See perldoc XML::Simple for the details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文