SVG::DOM - A library of DOM methods for SVG objects.



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.

Currently only methods that provide read operations are supported. Methods to manipulate SVG elements will be added in a future release.


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();
    ...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()


=head2 @children = $obj->hasChildren()

Return 1 if the current node has children, or 0 if there are no children.

Alias: hasChildElements, hasChildNodes()


=head2 $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.


AUTHOR

Ronan Oger, ronan@roasp.com


SEE ALSO

perl(1), the SVG manpage, the SVG::XML manpage, the SVG::Element manpage, the SVG::Parser manpage, the SVG::Manual manpage

http://www.roasp.com/ ROASP.com: Serverside SVG server http://www.vectoreal.com/ Vectoreal: Commercal SVG Application solutions http://www.roitsystems.com/ ROIT Systems: Commercial SVG perl solutions http://www.w3c.org/Graphics/SVG/ SVG at the W3C

 SVG::DOM - A library of DOM methods for SVG objects.