The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

YAX::Document - A DOM document object for YAX

SYNOPSIS

 use YAX::Document;
 
 $xdoc = YAX::Document->new;
 
 # set/get the doctype
 $xdoc->doctype( $type );
 $type = $xdoc->doctype;
 
 # get the document element (root node)
 $root = $xdoc->root;
 
 $xdoc->set( $node_id => $element );
 $xdoc->get( $node_id );
 
 # the following should be used with care because the document can only
 # have a single root element, so it doesn't make sense to append multiple
 # elements to a document (although YAX doesn't stop you from doing so):
 $xdoc->append( $new_child );
 $xdoc->remove( $old_child );
 $xdoc->replace( $new_child, $ref_child );
 $xdoc->insert ( $new_child, $ref_child );

 # creator methods:
 $elmt = $xdoc->element( $name, %atts );
 $text = $xdoc->text( $text );
 $frag = $xdoc->fragment( @kids );

 # stringify
 $xstr = $xdoc->as_string();

DESCRIPTION

This module implements a document object for YAX which is returned by the parser, so you will generally not be constructing these by hand.

It also serves as a registry for nodes keyed on their `id' attribute.

A noteworthy difference between YAX and the W3C DOM is that nodes in a YAX tree do not keep a reference to the document in which they are found. However, the document can be accessed from a node if the node is a descendant of the document, as it is looked up dynamically by traversing up the ancestor chain.

SEE ALSO

YAX:Node, YAX::Text, YAX::Element, YAX::Fragment, YAX::Constants, YAX::Query

AUTHOR

 Richard Hundt

LICENSE

This program is free software and may be modified and distributed under the same terms as Perl itself.