NAME
YAX::Element - a DOM element node
SYNOPSIS
use YAX::Element;
# construct
my $elmt = YAX::Element->new( $name, %attr );
# access an attribute
$elmt->attributes->{foo} = 'bar';
$elmt->{foo} = 'bar'; # same as above, '%{}' is overloaded
# access a child
my $chld = $elmt->children->[2];
my $chld = $elmt->[2]; # same as above, '@{}' is overloaded
# access the parent
my $prnt = $elmt->parent;
# access siblings
my $next = $elmt->next;
my $prev = $elmt->prev;
# manipulation
$elmt->append( $new_child );
$elmt->remove( $old_child );
$elmt->replace( $new_child, $ref_child );
$elmt->insert ( $new_child, $ref_child );
# cloning
my $copy = $elmt->clone( $deep );
# querying
my $list = $elmt->query( $expr );
# misc
my $name = $elmt->name; # tag name
my $type = $elmt->type; # YAX::Constants::ELEMENT_NODE
# stringify
my $xstr = $elmt->as_string;
my $xstr = "$elmt";
DESCRIPTION
This module represents element nodes in a YAX node tree.
METHODS
- type
-
Returns the value of YAX::Constants::ELEMENT_NODE
- name
-
Returns the tag name of this element.
- next
-
Returns the next sibling if any.
- prev
-
Returns the previous sibling if any.
- parent
-
Returns the parent node if any.
- attributes
-
Returns a hash ref of attributes.
- children
-
Returns an array ref of child nodes.
- append( $new_child )
-
Appends $new_child to this node. This is preferred over:
push @$elmt, $child;
because the
append(...)
makes sure that the$child
knows about its new parent, and removes it from any existing parent first.If this doesn't matter to you, then pushing or assigning directly to the children array ref is faster.
- replace( $new_child, $ref_child )
-
Replaces
$ref_child
with$new_child
. As above, this is preferred to assigning directly to the children array ref. - remove( $child )
-
Removes
$child
. - insert( $new_child, $ref_child )
-
Inserts
$new_child
before$ref_child
and updates the parent field. - clone( $deep )
-
Clones the node. If
$deep
is true, then clones deeply. - query( $expr )
-
Returns a query list object containing nodes which match the query expression
$expr
. If$expr
is not defined, then still returns a query list object which can be used for chaining.For details on see YAX::Query.
- as_string
-
Serializes this node. '""' is overloaded to call this method, so the following are equivalent:
my $xml_str = $node->as_string; my $xml_str = "$node";
SEE ALSO
YAX:Node, YAX::Text, 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.