NAME

Bio::Phylo::NeXML::DOM::Element - XML DOM Abstract class for flexible document object model implementation

SYNOPSIS

Not used directly.

DESCRIPTION

This module describes an abstract implementation of a DOM object as expected by Bio::Phylo. The methods here must be overridden in any concrete implementation. The idea is that different implementations use a particular XML DOM package, binding the methods here to analogous package methods.

This set of methods is intentionally minimal. The concrete instances of this class should inherit both from ElementI and the underlying XML DOM object class, so that package-specific methods can be directly accessed from the instantiated object.

AUTHOR

Mark A. Jensen - maj -at- fortinbras -dot- us

Constructor

new()
Type    : Constructor
Title   : new
Usage   : $elt = Bio::Phylo::NeXML::DOM::Element->new($tag, $attr)
Function: Create a new XML DOM element
Returns : DOM element object
Args    : Optional: 
          '-tag' => $tag  - tag name as string
          '-attr'    => $attr - hashref of attributes/values
parse_element()
Type    : Factory method
Title   : parse_element
Usage   : $elt = $dom->parse_element($text)
Function: Create a new XML DOM element from XML text
Returns : DOM element
Args    : An XML String

Namespace accessors/mutators

  • Type    : 
    Title   :
    Usage   :
    Function:
    Returns :
    Args    :

Tagname mutators/accessors

get_tag()
Type    : Accessor
Title   : get_tag
Usage   : $elt->get_tag()
Function: Get tag name
Returns : Tag name as scalar string
Args    : none
set_tag()
Type    : Mutator
Title   : set_tag
Usage   : $elt->set_tag( $tagname )
Function: Set tagname
Returns : True on success
Args    : Tag name as scalar string

Attribute mutators/accessors

get_attributes()
Type    : Accessor
Title   : get_attributes
Usage   : $elt->get_attributes( @attribute_names )
Function: Get attribute values
Returns : A hash ref of key/value pairs
Args    : Optional, [a list of] attribute name[s] as string[s]
set_attributes()
Type    : Mutator
Title   : set_attributes
Usage   : $elt->set_attributes( @attribute_assoc_array )
Function: Set attribute values
Returns : True on success
Args    : An associative array of form ( $name => $value, ... )
clear_attributes()
Type    : Mutator
Title   : clear_attributes
Usage   : $elt->clear_attributes( @attribute_names )
Function: Remove attributes from element
Returns : Hash of removed attributes/values
Args    : Array of attribute names

Content mutators/accessors

set_text()
Type    : Mutator
Title   : set_text
Usage   : $elt->set_text($text_content)
Function: Add a #TEXT node to the element 
Returns : True on success
Args    : scalar string
get_text()
Type    : Accessor
Title   : get_text
Usage   : $elt->get_text()
Function: Retrieve direct #TEXT descendants as (concatenated) string
Returns : scalar string (the text content)
Args    : none
clear_text()
Type    : Mutator
Title   : clear_text
Usage   : $elt->clear_text()
Function: Remove direct #TEXT descendant nodes from element
Returns : True on success; false if no #TEXT nodes removed
Args    : none

Traversal methods

get_parent()
Type    : Accessor
Title   : get_parent
Usage   : $elt->get_parent()
Function: Get parent DOM node of invocant 
Returns : Element object or undef if invocant is root
Args    : none
get_children()
Type    : Accessor
Title   : get_children
Usage   : $elt->get_children()
Function: Get child nodes of invocant
Returns : Array ref of Elements
Args    : none
get_first_daughter()
Type    : Accessor
Title   : get_first_daughter
Usage   : $elt->get_first_daughter()
Function: Get first child (as defined by underlying package) of invocant
Returns : Element object or undef if invocant is childless
Args    : none
get_last_daughter()
Type    : Accessor
Title   : get_last_daughter
Usage   : $elt->get_last_daughter()
Function: Get last child (as defined by underlying package) of invocant
Returns : Element object or undef if invocant is childless
Args    : none
get_next_sister()
Type    : Accessor
Title   : get_next_sister
Usage   : $elt->get_next_sister()
Function: Gets next sibling (as defined by underlying package) of invocant
Returns : Element object or undef if invocant is the rightmost element
Args    : none
get_previous_sister()
Type    : Accessor
Title   : get_previous_sister
Usage   : $elt->get_previous_sister()
Function: Get previous sibling (as defined by underlying package) of invocant
Returns : Element object or undef if invocant is leftmost element
Args    : none
get_elements_by_tagname()
Type    : Accessor
Title   : get_elements_by_tagname
Usage   : $elt->get_elements_by_tagname($tagname)
Function: Get array of elements having given tag name from invocant's 
          descendants
Returns : Array of elements or undef if no match
Args    : tag name as string

Prune and graft methods

set_child()
Type    : Mutator
Title   : set_child
Usage   : $elt->set_child($child)
Function: Add child element object to invocant's descendants
Returns : the element object added
Args    : Element object
prune_child()
Type    : Mutator
Title   : prune_child
Usage   : $elt->prune_child($child)
Function: Remove the subtree rooted by $child from among the invocant's
          descendants
Returns : $child or undef if $child is not among the children of invocant
Args    : Element object

Output methods

to_xml()
Type    : Serializer
Title   : to_xml
Usage   : $elt->to_xml
Function: Create XML string from subtree rooted by invocant
Returns : XML string
Args    : Formatting arguments as allowed by underlying package

CITATION

If you use Bio::Phylo in published research, please cite it:

Rutger A Vos, Jason Caravas, Klaas Hartmann, Mark A Jensen and Chase Miller, 2011. Bio::Phylo - phyloinformatic analysis using Perl. BMC Bioinformatics 12:63. http://dx.doi.org/10.1186/1471-2105-12-63