gpt4 book ai didi

xml - 如何将参数传递给 XML::SAX 解析器?

转载 作者:行者123 更新时间:2023-12-04 06:10:03 26 4
gpt4 key购买 nike

我有一个基于 XML::SAX::Base 的解析器,它看起来像这样:

package MyParser;
use base qw(XML::SAX::Base);
our @ISA = ('XML::SAX::Base');

sub new {
my $class = shift;
my %params = @_;

my $self = {
thing => $params{thing},
};
bless $self, $class;

return $self;
}

sub start_element {
my ($self, $data) = @_;
# Do something useful using $data & $self->{thing}
}
1;

我将它与 XML::SAX::ParserFactory 一起使用:
#!/usr/bin/env perl
use MyParser;

my $parser = XML::SAX::ParserFactory->parser(
Handler => MyParser->new
);
$parser->parse_string('<document/>');

有没有办法将参数传递给 MyParser 的 new() 子例程?

最佳答案

您的 new方法已经设置为使用 %params 接收参数,所以只需将您的参数作为哈希传递:

my $parser = XML::SAX::ParserFactory->parser(
Handler => MyParser->new(param1=>$value1, param2=>$value2, ...)
);

然后在您的 new方法,您可以像访问任何其他哈希一样访问参数:
$param1 = $params{param1};
$param2 = $params{param2};
...

关于xml - 如何将参数传递给 XML::SAX 解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com