NAME¶
SVG::DOM - A library of DOM (Document Object Model) methods for SVG objects.
SUMMARY¶
SVG::DOM provides a selection of methods for accessing and manipulating SVG
elements through DOM-like methods such as getElements, getChildren,
getNextSibling and so on.
SYNOPSIS¶
my $svg=new SVG(id=>"svg_dom_synopsis", width=>"100", height=>"100");
my %attributes=$svg->getAttributes;
my $group=$svg->group(id=>"group_1");
my $name=$group->getElementName;
my $id=$group->getElementID;
$group->circle(id=>"circle_1", cx=>20, cy=>20, r=>5, fill=>"red");
my $rect=$group->rect(id=>"rect_1", x=>10, y=>10, width=>20, height=>30);
my $width=$rect->getAttribute("width");
my $has_children=$group->hasChildren();
my @children=$group->getChildren();
my $kid=$group->getFirstChild();
do {
print $kid->xmlify();
} while ($kid=$kid->getNextSibling);
my @ancestors=$rect->getParents();
my $is_ancestor=$group->isAncestor($rect);
my $is_descendant=$rect->isDescendant($svg);
my @rectangles=$svg->getElements("rect");
my $allelements_arrayref=$svg->getElements();
$group->insertBefore($newChild,$rect);
$group->insertAfter($newChild,$rect);
$rect = $group->replaceChild($newChild,$rect);
$group->removeChild($newChild);
my $newRect = $rect->cloneNode($deep);
...and so on...
METHODS¶
@elements = $obj->getElements($element_name)¶
Return a list of all elements with the specified name (i.e. type) in the
document. If no element name is provided, returns a list of all elements in
the document. In scalar context returns an array reference.
@children = $obj->getChildren()¶
Return a list of all children defined on the current node, or undef if there are
no children. In scalar context returns an array reference.
Alias:
getChildElements(),
getChildNodes()
@children = $obj->hasChildren()¶
Return 1 if the current node has children, or 0 if there are no children.
Alias: hasChildElements,
hasChildNodes()
$ref = $obj->getFirstChild()¶
Return the first child element of the current node, or undef if there are no
children.
$ref = $obj->getLastChild()¶
Return the last child element of the current node, or undef if there are no
children.
$ref = $obj->getSiblings()¶
Return a list of all children defined on the parent node, containing the current
node.
$ref = $obj->getNextSibling()¶
Return the next child element of the parent node, or undef if this is the last
child.
$ref = $obj->getPreviousSibling()¶
Return the previous child element of the parent node, or undef if this is the
first child.
$index = $obj->getChildIndex()¶
Return the place of this element in the parent node's list of children, starting
from 0.
$element = $obj->getChildAtIndex($index)¶
Returns the child element at the specified index in the parent node's list of
children.
$ref = $obj->getParentElement()¶
Return the parent of the current node.
Alias:
getParent()
@refs = $obj->getParentElements()¶
Return a list of the parents of the current node, starting from the immediate
parent. The last member of the list should be the document element.
Alias:
getParents()
$name = $obj->getElementName()¶
Return a string containing the name (i.e. the type, not the ID) of an element.
Alias:
getType(),
getTagName(),
getNodeName()
$ref = $svg->getElementByID($id)¶
Alias:
getElementbyID()
Return a reference to the element which has ID $id, or undef if no element with
this ID exists.
$id = $obj->getElementID()¶
Return a string containing the ID of the current node, or undef if it has no ID.
$ref = $obj->getAttributes()¶
Return a hash reference of attribute names and values for the current node.
$value = $obj->getAttribute($name);¶
Return the string value attribute value for an attribute of name $name.
$ref =
$obj->setAttributes({name1=>$value1,name2=>undef,name3=>$value3})¶
Set a set of attributes. If $value is undef, deletes the attribute.
$value = $obj->setAttribute($name,$value);¶
Set attribute $name to $value. If $value is undef, deletes the attribute.
$cdata = $obj->getCDATA()¶
Return the cannonical data (i.e. textual content) of the current node.
Alias:
getCdata(),
getData()
$boolean = $obj->isAncestor($element)¶
Returns 1 if the current node is an ancestor of the specified element, otherwise
0.
$boolean = $obj->isDescendant($element)¶
Returns 1 if the current node is a descendant of the specified element,
otherwise 0.
$boolean = $obj->insertBefore( $element, $child );¶
Returns 1 if $element was successfully inserted before $child in $obj
$boolean = $obj->insertAfter( $element, $child );¶
Returns 1 if $element was successfully inserted after $child in $obj
$boolean = $obj->insertSiblingBefore( $element );¶
Returns 1 if $element was successfully inserted before $obj
$boolean = $obj->insertSiblingAfter( $element );¶
Returns 1 if $element was successfully inserted after $obj
$element = $obj->replaceChild( $element, $child );¶
Returns $child if $element successfully replaced $child in $obj
$element = $obj->removeChild( $child );¶
Returns $child if it was removed successfully from $obj
$element = $obj->cloneNode( $deep );¶
Returns a new $element clone of $obj, without parents or children. If deep is
set to 1, all children are included recursively.
AUTHOR¶
Ronan Oger, ronan@roitsystems.com Martin Owens, doctormo@postmaster.co.uk
SEE ALSO¶
perl(1), SVG, SVG::XML, SVG::Element, SVG::Parser, SVG::Manual
<
http://www.roitsystems.com/> ROIT Systems: Commercial SVG perl solutions
<
http://www.w3c.org/Graphics/SVG/> SVG at the W3C