NAME
SGML::Element - an element of an SGML, XML, or HTML document
SYNOPSIS
$element->gi;
$element->name;
$element->attr ($attr[, $value]);
$element->attr_as_string ($attr[, $context, ...]);
$element->attributes;
$element->contents;
$element->as_string([$context, ...]);
$element->accept($visitor, ...);
$element->accept_gi($visitor, ...);
$element->children_accept($visitor, ...);
$element->children_accept_gi($visitor, ...);
DESCRIPTION
SGML::Element
objects are loaded by SGML::SPGrove
. An SGML::Element
contains a generic identifier, or name, for the element, the elements attributes and the ordered contents of the element.
$element->gi
and $element->name
are synonyms, they return the generic identifier of the element.
$element->attr
returns the array value of an attribute, if a second argument is given then that value is assigned to the attribute and returned. When assigning a value, attr
can take an array, or an object or scalar. If given an object or scalar, attr
will create an array value for it.
$element->attr_as_string
returns the value of an attribute as a string, possibly modified by $context
.
$element->attributes
returns a reference to a hash containing the attributes of the element. The keys of the hash are the attribute names and the values are references to an array containing scalars or SGML::SData
objects.
$element->contents
returns a reference to an array containing the children of the element. The contents of the element may contain other elements, scalars, or SGML::SData
or SGML:PI
objects.
$element->as_string
returns the entire hierarchy of this element as a string, possibly modified by $context
. See SGML::SData and SGML::PI for more detail.
$element->accept($visitor[, ...])
issues a call back to $visitor->visit_element($element[, ...])
. See examples visitor.pl
and simple-dump.pl
for more information.
$element->accept_gi($visitor[, ...])
issues a call back to $visitor->visit_gi_GI($element[, ...])
where GI is the generic identifier of this element. accept_gi
maps strange characters in the GI to underscore (`_') [XXX more specific].
children_accept
and children_accept_gi
call accept
and accept_gi
, respectively, on each object in the element's content.
Element handles scalars internally for as_string
, children_accept
, and children_accept_gi
. For children_accept
and children_accept_gi
(both), Element calls back with $visitor->visit_scalar($scalar[, ...])
.
For as_string
, Element will use the string unless $context->{cdata_mapper}
is defined, in which case it returns the result of calling the cdata_mapper
subroutine with the scalar and the remaining arguments. The actual implementation is:
&{$context->{cdata_mapper}} ($scalar, @_);
AUTHOR
Ken MacLeod, ken@bitsko.slc.ut.us
SEE ALSO
perl(1), SGML::SPGrove(3), Text::EntityMap(3), SGML::SData(3), SGML::PI(3).