NAME
Bio::OntologyIO::Handlers::BaseSAXHandler - base class for SAX Handlers
SYNOPSIS
See description.
DESCRIPTION
This module is an abstract module, serving as the base of any SAX Handler implementation. It tries to offer the framework that SAX handlers generally need, such as tag_stack, char_store, etc.
In the implementation handler, you can take advantage of this based module by the following suggestions.
1) In start_element,
sub start_element {my $self=shift;my $tag=$_[0]->{Name};my %args=%{$_[0]->{Attributes}};# Your code here.# Before you conclude the method, write these 2 line.$self->_visited_count_inc($tag);$self->_push_tag($tag);}
2) In end_element,
sub end_element {my $self=shift;my $tag=shift->{Name};# Your code here.# Before you conclude the method, write these 2 lines.$self->_visited_count_dec($tag);$self->_pop_tag;}
3) In characters, or any other methods where you may use the tag stack or count
sub characters {my $self=shift;my $text=shift->{Data};$self->_chars_hash->{$self->_top_tag} .= $text;}$count = $self->_visited_count('myTag');$tag = $self->_top_tag;
FEEDBACK
Mailing Lists
User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to one of the Bioperl mailing lists.
Your participation is much appreciated.
[email protected] - General discussionhttp://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support
Please direct usage questions or support issues to the mailing list:
rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.
Reporting Bugs
Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via the web:
https://github.com/bioperl/bioperl-live/issues
AUTHOR
Juguang Xiao, [email protected]
APPENDIX
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
_tag_stack
Title : _tag_stackUsage : @tags = $self->_tag_stack;Function: Get an array of tags that have been accessed but not enclosed.Return :Args :
_push_tag
_pop_tag
_top_tag
Title : _top_tagUsage : $top = $self->_top_tag;Function: get the top tag in the tag stack.Return : a tag nameArgs : [none]
_chars_hash
Title : _chars_hashUsage : $hash= $self->_chars_hash;Function: return the character cache for the specific tagReturn : a hash reference, which is intent for character storage for tagsArgs : [none]
_current_hash
_visited_count_inc
Title : _vistied_count_incUsage : $self->vistied_count_inc($tag); # the counter for the tag increaseFunction: the counter for the tag increaseReturn : the current count after this incrementArgs : the tag name [scalar]
_visited_count_dec
Title : _visited_count_decUsage : $self->_visited_count_dec($tag);Function: the counter for the tag decreases by oneReturn : the current count for the specific tag after the decrementArgs : the tag name [scalar]
_visited_count
Title : _visited_countUsage : $count = $self->_visited_countFunction: return the counter for the tagReturn : the current counter for the specific tagArgs : the tag name [scalar]