Mercurial > pub > Impl
comparison Lib/IMPL/DOM/XMLReader.pm @ 12:955b2324c1bf
Работа над навигаторами и схемой DOM модели
author | Sergey |
---|---|
date | Mon, 31 Aug 2009 01:37:43 +0400 |
parents | 63f6653b094e |
children | bb8d67f811ea |
comparison
equal
deleted
inserted
replaced
10:63f6653b094e | 12:955b2324c1bf |
---|---|
24 ); | 24 ); |
25 | 25 |
26 $parser->parse($in); | 26 $parser->parse($in); |
27 } | 27 } |
28 | 28 |
29 sub ParseFile { | |
30 my ($this,$in) = @_; | |
31 | |
32 my $parser = new XML::Parser( | |
33 Handlers => { | |
34 Start => sub {shift; goto &OnStart($this,@_)}, | |
35 End => sub {shift; goto &OnEnd($this,@_)}, | |
36 Char => sub {shift; goto &OnChar($this,@_)} | |
37 } | |
38 ); | |
39 | |
40 $parser->parsefile($in); | |
41 } | |
42 | |
43 | |
29 sub OnBegin { | 44 sub OnBegin { |
30 my ($this,$element,%attrs) = @_; | 45 my ($this,$element,%attrs) = @_; |
31 | 46 |
32 $this->{$_current} = $this->Navigator->CreateAndNavigate($element,%attrs); | 47 $this->{$_current} = $this->Navigator->NavigateCreate($element,%attrs); |
33 } | 48 } |
34 | 49 |
35 sub OnEnd { | 50 sub OnEnd { |
36 my ($this,$element) = @_; | 51 my ($this,$element) = @_; |
37 | 52 |
43 | 58 |
44 $this->{$_current}->nodeValue($this->{$_current}->nodeValue . $val); | 59 $this->{$_current}->nodeValue($this->{$_current}->nodeValue . $val); |
45 } | 60 } |
46 | 61 |
47 1; | 62 1; |
63 | |
64 __END__ | |
65 | |
66 =pod | |
67 | |
68 =head1 SYNOPSIS | |
69 | |
70 my $reader = new IMPL::DOM::XMLReader(Navigator => $DomBuilder); | |
71 my $obj = $reader->parsefile("data.xml"); | |
72 | |
73 =head2 DESCRIPTION | |
74 | |
75 , . | |
76 . | |
77 | |
78 C<NavigateCreate> C<Back> | |
79 | |
80 =cut |