一小段代码:
#!/usr/local/bin/perl
use XML::Parser;
my $parser = new XML::Parser;
$data=$parser->parsefile(‘data.xml’);
$parser->setHandlers( Start => \&startElement,
End => \&endElement,
Char => \&characterData,
Default => \&default);
sub startElement {
my( $parseinst, $element, %attrs ) = @_;
SWITCH: {
if ($element eq "article") {
$count++;
$tag = "article";
print "Article $count:\n";
last SWITCH;
}
if ($element eq "title") {
print "Title: ";
$tag = "title";
last SWITCH;
}
.......................
.......................
这里调用了构造函数new,那么函数将返回一个引用(对象),该引用跟data.xml作为parsefil的两个参数,parsefileile函数的作用在这里到底是什么??我想是不是把xml文件数据赋给即对象?
然后是自定义的几个函数,例如 startElement ,其参数有$parseinst,它应该是$parser 把,但实际代码中没出现它,而仅仅是$element,所以我想问这个参数$parser 有实际意义么? 我想肯定有,因为调用包XML::Parser里面的方法(函数)时,函数的第一个参数有种情况(虚方法)是对象,但怎么体现了,
--------------------next---------------------
阅读(517) | 评论(0) | 转发(0) |