NAME

XML::Sablotron::DOM - The DOM interface to Sablotron's internal structures

SYNOPSIS

  use XML::Sablotron::DOM;

  my $situa = new XML::Sablotron::Situation();
  my $doc = new XML::Sablotron::DOM::Document(SITUATION => $sit);

  my $e = $doc->createElement($situa, "foo");
  my $t = $doc->createTextNode($situa, "this is my text");

  print $doc->toString();

DESCRIPTION

Sablotron uses internally the DOM-like data structures to represent parsed XML trees. In the sdom.h header file is defined a subset of functions allowing the DOM access to these structures.

What is it good for

You may find this module useful if you need to

  • access parsed trees

  • build trees on the fly

  • pass parsed/built trees into XSLT processor

Situation

There is one significant extension to the DOM specification. Since Sablotron is designed to support multithreading processing (and well reentrant code too), you need create and use special context for error processing. This context is called the situation.

An instance of this object MUST be passed as the first parameter to almost all calls in the XML::Sablotron::DOM code.

Some easy-to-use default behavior may be introduced in later releases.

See perldoc XML::Sablotron for more details.

MEMORY ISSUES

Perl objects representing nodes of the DOM tree live independently on internal structures of Sablotron. If you create and populate the document, its structure is not related to the lifecycle of your Perl variables. It is good for you, but there are two exceptions to this:

  • freeing the document

  • accessing the node after the document is destroyed

As results from above, you have to force XML::Sablotron::DOM to free document, if you want. Use

  $doc->freeDocument($sit);

to to it. Another way is to use the autodispode feature (see the documentation for the method autodispose and document constructor).

If you will try to access the node, which was previously disposed by Sablotron (perhaps with the all tree), your Perl code will die with exception -1. Use eval {}; to avoid program termination.

PACKAGES

The XML::Sablotron::DOM defines several packages. Just will be created manually in your code; they are mostly returned as a return values from many functions.

XML::Sablotron::DOM

The XML::Sablotron::DOM package is almost empty, and serves as a parent module for the other packages.

By default this module exports no symbols into the callers package. If want to use some predefined constants or functions, you may use

  use XML::Sablotron::DOM qw( :constants :functions );

constants

Constants are defined for:

  • node types

    ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE, ENTITY_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, DOCUMENT_FRAGMENT_NODE, NOTATION_NODE, OTHER_NODE

  • exception codes

    SDOM_OK, INDEX_SIZE_ERR, DOMSTRING_SIZE_ERR, HIERARCHY_ERR, WRONG_DOCUMENT_ERR, INVALID_CHARACTER_ERR, NO_DATA_ALLOWED_ERR, NO_MODIFICATION_ALLOWED_ERR, NOT_FOUND_ERR, NOT_SUPPORTED_ERR, INUSE_ATTRIBUTE_ERR, INVALID_STATE_ERR, SYNTAX_ERR, INVALID_MODIFICATION_ERR, NAMESPACE_ERR, INVALID_ACCESS_ERR, INVALID_NODE_TYPE_ERR, QUERY_PARSE_ERR QUERY_EXECUTION_ERR, NOT_OK

parse

This function parses the document specified by the URI. There is currently no support for scheme handler for this operation (see XML::Sablotron) but it will be added soon.

Function returns the XML::Sablotron::DOM::Document object instance.

  XML::Sablotron::DOM::parse($sit, $uri);
$sit

The situation to be used.

$uri

The URI of the document to be parsed.

parseBuffer

This function parses the literal data specified.

  XML::Sablotron::DOM::parseBuffer($sit, $data);
$sit

The situation to be used.

$data

The string containing the XML data to be parsed.

parseStylesheet

This function parses the stylesheet specified by the URI. There is currently no support for scheme handler for this operation (see XML::Sablotron) but it will be added soon.

Function returns the XML::Sablotron::DOM::Document object instance.

  XML::Sablotron::DOM::parseStylesheet($sit, $uri);
$sit

The situation to be used.

$uri

The URI of the stylesheet to be parsed.

parseStylesheetBuffer

This function parses the stylesheet given by the literal data.

  XML::Sablotron::DOM::parseStylesheetBuffer($sit, $data);
$sit

The situation to be used.

$data

The string containing the stylesheet to be parsed.

XML::Sablotron::DOM::Node

This package is used to represent the Sablotron internal representation of the node. It is the common ancestor of all other types.

equals

Check if the to perl representations of the node represent the same node in the DOM document. Not in DOM spec.

Synopsis:

  $node1->equals($node2);
$node2

The node to be compared to.

getNodeName

For ELEMENT_NODE and ATTRIBUTE_NODE returns the name of the node. For other node types return as follows:

TEXT_NODE => "#text", CDATA_SECTION_NODE => "#cdata-section", COMMENT_NODE => "#comment", DOCUMENT_NODE => "#document", PROCESSING_INSTRUCTION_NODE => target of this node

Not in DOM spec.

Synopsis:

  $node->getNodeName([$situa]);
$situa

The situation to be used (optional).

setNodeName

Sets the name of the node. Not in DOM spec.

Exceptions:

NO_MODIFICATION_ALLOWED_ERR

for TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE and DOCUMENT_NODE for ATTRIBUTE_NODE:if attempt to set name of attribute, which defines namespace used by coresponding element or by another attribute of coresponding element

NAMESPACE_ERR

for ELEMENT_NODE:if unknown prefix is used to set name for ATTRIBUTE_NODE:if attempt to change non-namespace attribute to namespace attribute a vice versa

Synopsis:

  $node->setNodeName($name [, $situa]);
$name

The new node name.

$situa

The situation to be used (optional).

nodeName

Gets or sets the name of the node.

Exceptions:

see getNodeName, setNodeName

Synopsis:

  $node->nodeName([$situa]);  
  $node->nodeName($name [, $situa]);
$name

The new node name.

$situa

The situation to be used (optional). If used, cannot be undef.

getNodeValue

Returns the value of ATTRIBUTE_NODE, the content of TEXT_NODE, CDATA_SECTION_NODE and COMMENT_NODE, the body of PROCESSING_INSTRUCTION_NODE and otherwise returns undef. Not in DOM spec.

Synopsis:

  $node->getNodeValue([$situa]);
$situa

The situation to be used (optional).

setNodeValue

Sets the content of the node for TEXT_NODE, CDATA_SECTION_NODE and COMMENT_NODE, the value of ATTRIBUTE_NODE, the body of PROCESSING_INSTRUCTION_NODE. Not in DOM spec.

Exceptions:

NO_MODIFICATION_ALLOWED_ERR

for ELEMENT_NODE, DOCUMENT_NODE

NAMESPACE_ERR

for ATTRIBUTE_NODE, if attempt to change value of namespace-attribute, which prefix is used by owning element or it's attribute

Synopsis:

  $node->setNodeValue($value [, $situa]);
$value

The new node value.

$situa

The situation to be used (optional).

nodeValue

Gets or sets the content of the node for ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, PROCESSING_INSTRUCTION_NODE and COMMENT_NODE.

Exceptions:

see getNodeValue, setNodeValue

Synopsis: $node->nodeValue([$situa]); $node->nodeValue($value [, $situa]);

$value

The new node value.

$situa

The situation to be used (optional). If used, cannot be undef.

getNodeType

Returns the node type. See "XML::Sablotron::DOM" for more details. Not in DOM spec.

Synopsis:

  $node->getNodeType([$situa]);
$situa

The situation to be used (optional).

nodeType

Returns the node type. See "XML::Sablotron::DOM" for more details.

Synopsis:

  $node->nodeType([$situa]);
$situa

The situation to be used (optional).

getParentNode

Returns the parent node, if there is any. Otherwise returns undef. Undefined value is always returned for the DOCUMENT_NODE. Not in DOM spec.

Synopsis:

  $node->getParentNode([$situa]);
$situa

The situation to be used (optional).

parentNode

Returns the parent node, if there is any. Otherwise returns undef. Undefined value is always returned for the DOCUMENT_NODE.

Synopsis:

  $node->parentNode([$situa]);
$situa

The situation to be used (optional).

getChildNodes

Returns the reference to the array of all child nodes of given node. This array is NOT alive, i.e. the content of once created array does not reflect the changes of DOM tree. Not in DOM spec.

Synopsis:

  $node->getChildNodes([$situa]);
$situa

The situation to be used (optional).

childNodesArr

Returns the reference to the array of all child nodes of given node. This array is NOT alive, i.e. the content of once created array does not reflect the changes of DOM tree. Not in DOM spec.

Synopsis:

  $node->childNodesArr([$situa]);
$situa

The situation to be used (optional).

childNodes

Returns the reference to the instance of XML::Sablotron::DOM::NodeList. This array is alive, i.e. the content of once created array does reflect the changes of DOM tree.

Synopsis:

  see XML::Sablotron::DOM::NodeList

getFirstChild

Get the first child of the node or undef. Not in DOM spec.

Synopsis:

  $node->getFirstChild([$situa]);
$situa

The situation to be used (optional).

firstChild

Get the first child of the node or undef.

Synopsis:

  $node->firstChild([$situa]);
$situa

The situation to be used (optional).

getLastChild

Get the last child of the node or undef. Not in DOM spec.

Synopsis:

  $node->getLastChild([$situa]);
$situa

The situation to be used (optional).

lastChild

Get the last child of the node or undef.

Synopsis:

  $node->lastChild([$situa]);
$situa

The situation to be used (optional).

getPreviousSibling

Returns the node immediately preceding the node. Returns undef, if there is no such node. Not in DOM spec.

Synopsis:

  $node->getPreviousSibling([$situa]);
$situa

The situation to be used (optional).

previousSibling

Returns the node immediately preceding the node. Returns undef, if there is no such node.

Synopsis:

  $node->previousSibling([$situa]);
$situa

The situation to be used (optional).

getNextSibling

Returns the node immediately following the node. Returns undef, if there is no such node. Not in DOM spec.

Synopsis:

  $node->getNextSibling([$situa]);
$situa

The situation to be used (optional).

nextSibling

Returns the node immediately following the node. Returns undef, if there is no such node.

Synopsis:

  $node->nextSibling([$situa]);
$situa

The situation to be used (optional).

attributes

Returns undef. Implemented in XML::Sablotron::DOM::Element.

getOwnerDocument

Returns the document owning the node. It is always the document, which created this node. For document itself the return value is undef. Not in DOM spec.

Synopsis:

  $node->getOwnerDocument([$situa]);
$situa

The situation to be used (optional).

ownerDocument

Returns the document owning the node. It is always the document, which created this node. For document itself the return value is undef.

Synopsis:

  $node->ownerDocument([$situa]);
$situa

The situation to be used (optional).

insertBefore

Makes a new node the child of thexpression to be replacede node. It is put right before the reference node. If the reference node is not defined, the new node is appended to the child list.

Exceptions:

HIERARCHY_REQUEST_ERR

Raised if the node doesn't allow children of given type.

WRONG_DOCUMENT_ERR

Raised if the new node is not owned by the same document as the node.

Synopsis:

  $node->insertBefore($new_node, $ref_node [, $situa]);
$new_node

The inserted node.

$ref_node

The reference node. The new node is to be inserted right before this node. May be undef; in this case the new node is appended.

$situa

The situation to be used (optional).

replaceChild

Replace the child node with the new one. Returns replaced (old) child.

Exceptions:

HIERARCHY_REQUEST_ERR

Raised if the node doesn't allow children of given type.

WRONG_DOCUMENT_ERR

Raised if the new node is not owned by the same document as the node.

NOT_FOUND_ERR

Raised if the replaced node is not the child of the node.

Synopsis:

  $node->replaceChild($child, $old_child [, $situa]);
$child

The new child to be inserted (in the place of the $old_child). The new child is removed from it's parent at first, if needed.

$old_child

The node to be replaced.

$situa

The situation to be used (optional).

removeChild

Remove the child node from the list of children of the node.

Exceptions:

NOT_FOUND_ERR

Raised if the removed node is not the child of the node.

Synopsis:

  $node->removeChild($child, [, $situa]);
$child

The node to be removed.

$situa

The situation to be used (optional).

appendChild

Appends the new node to the list of children of the node.

Exceptions:

HIERARCHY_REQUEST_ERR

Raised if the node doesn't allow children of given type.

WRONG_DOCUMENT_ERR

Raised if the new node is not owned by the same document as the node.

Synopsis:

  $node->appendChild($child, [$situa]);
$child

The node to be appended.

$situa

The situation to be used (optional).

hasChildNodes

Returns the count of child nodes.

Synopsis:

  $node->hasChildNodes([$situa]);
$situa

The situation to be used (optional).

cloneNode

Returns the copy of node.

Exceptions:

INVALID_NODE_TYPE_ERR

Raised if the node is document.

Synopsis:

  $node->cloneNode($deep [, $situa]);
$deep

Boolean flag causing deep copying of node.

$situa

The situation to be used (optional).

normalize

Does and returns nothing.

isSupported

Returns false (exactly 0).

namespaceURI

Returns uri of the namespace, in which node is.

Synopsis:

  $node->namespaceURI([$situa]);
$situa

The situation to be used (optional).

prefix

Gets or sets prefix of the node.

Synopsis:

  $node->prefix([$situa]);
  $node->prefix($prefix [, $situa]);
$prefix

The new value of node prefix.

$situa

The situation to be used (optional). If used, cannot be undef.

localName

Returns local name of the node.

Synopsis:

  $node->localName([$situa]);
$situa

The situation to be used (optional).

hasAttributes

Returns false (exactly 0).

xql

Executes the XPath expression and returns the ARRAYREF of resulting nodes. Not in DOM spec.

Synopsis:

  $node->xql($expr [, $situa]);
$expr

The expression to be replaced.

$situa

The situation to be used (optional).

xql_ns

Executes the XPath expression and returns the ARRAYREF of resulting nodes. Not in DOM spec.

Synopsis:

  $node->xql($expr, $nsmap [, $situa]);
$expr

The expression to be replaced.

$nsmap

Hashref to namespace mappings like { prefix => uri, ...}

$situa

The situation to be used (optional).

XML::Sablotron::DOM::Document

Represents the whole DOM document (the "/" root element).

new

Create the new empty document. Not in DOM spec.

Synopsis:

  $doc = XML::Sablotron::DOM::Document->new([AUTODISPOSE => $ad]);
$ad

Specifies if the document is to be deleted after the last Perl reference is dropped,

autodispose

Reads or set the autodispose flag, This flag causes, that the document is destroyed after the last Perl reference is undefined. Not in DOM spec.

Synopsis:

  $doc->autodispose([$ad]);
$ad

Specifies if the document is to be deleted after the last Perl reference is dropped,

freeDocument

Disposes all memory allocated by Sablotron for the DOM document. This is the only way how to do it. See "MEMORY ISSUES" for more details. Not in DOM spec.

Synopsis:

  $doc->freeDocument([$situa]);
$situa

The situation to be used (optional).

toString

Serializes the document tree into the string representation. Not in DOM spec.

Synopsis:

  $doc->toString([$situa])
$situa

The situation to be used (optional).

documentElement

Returns the root element of the document.

Synopsis:

  $doc->documentElement([$situa])
$situa

The situation to be used (optional).

createElement

Creates the new ELEMENT_NODE. The parent of the node is not set; the owner document is set to the document.

Synopsis:

  $doc->createElement($name [, $situa]);
$name

The new element name.

$situa

The situation to be used (optional).

createTextNode

Creates the new TEXT_NODE. The parent of the node is not set; the owner document is set to the document.

Synopsis:

  $doc->createTextNode($data [, $situa]);
$data

The initial value of the node.

$situa

The situation to be used (optional).

createComment

Creates the new COMMENT_NODE. The parent of the node is not set; the owner document is set to the document.

Synopsis:

  $doc->createComment($data [, $situa]);
$data

The initial value of the node.

$situa

The situation to be used (optional).

createCDATASection

Creates the new CDATA_SECTION_NODE. The parent of the node is not set; the owner document is set to the document.

Synopsis:

  $doc->createCDATASection($data [, $situa]);
$data

The initial value of the node.

$situa

The situation to be used (optional).

createProcessingInstruction

Creates the new PROCESSING_INSTRUCTION_NODE. The parent of the node is not set; the owner document is set to the document.

Synopsis:

  $doc->createProcessingInstruction($target, $data [, $situa]);
$target

The target for the PI.

$data

The data for the PI.

$situa

The situation to be used (optional).

createAttribute

Creates the new attribute. The owner document is set to the document.

Synopsis:

  $doc->createAttribute($name [, $situa]);
$name

The name of the attribute.

$situa

The situation to be used (optional).

cloneNode

Clone the node. The children of the node may be cloned too. The cloned node may be from another document; cloned nodes are always owned by the calling document. Parent of the cloned node is not set. Not in DOM spec.

Synopsis:

  $doc->cloneNode($node, $deep [, $situa]);
$node

The node to be cloned.

$deep

If true, all children of the node are cloned too.

$situa

The situation to be used (optional).

importNode

Clone the node. The children of the node may be cloned too. The cloned node may be from another document; cloned nodes are always owned by the calling document. Parent of the cloned node is not set.

Synopsis:

  $doc->importNode($node, $deep [, $situa]);
$node

The node to be cloned.

$deep

If true, all children of the node are cloned too.

$situa

The situation to be used (optional).

createElementNS

Creates the new element. The parent of the node is not set; the owner document is set to the document.

Exceptions:

INVALID_CHARACTER_ERR

Raised if the specified qualified name contains an illegal character.

NAMESPACE_ERR

Raised if the qname is malformed, if the qname has a prefix and the namespaceUri is undefined, or if the qname has a prefix that is "xml" and the namespaceUri is different from "http://www.w3.org/XML/1998/namespace".

Synopsis:

  $doc->createElementNS($namespaceUri, $qname [, $situa]);
$namespaceUri

The uri of namespace, where the created element exist in.

$qname

The qualified name of created element.

$situa

The situation to be used (optional).

createAttributeNS

Creates the new attribute. The owner document is set to the document.

Exceptions:

INVALID_CHARACTER_ERR

Raised if the specified qualified name contains an illegal character.

NAMESPACE_ERR

Raised if the qname is malformed, if the qname has a prefix and the namespaceUri is undefined, or if the qname has a prefix that is "xml" and the namespaceUri is different from "http://www.w3.org/XML/1998/namespace", or if the qualifiedName is "xmlns" and the namespaceURI is different from "http://www.w3.org/2000/xmlns/".

Synopsis:

  $doc->createAttributeNS($namespaceUri, $qname [, $situa]);
$namespaceUri

The uri of namespace, where the created attribute exist in.

$qname

The qualified name of created attribute.

$situa

The situation to be used (optional).

XML::Sablotron::DOM::Element

Represents the element of the tree.

tagName

Returns the element name.

Synopsis:

  $e->tagName([$situa]);
$situa

The situation to be used (optional).

getAttribute

Retrieves an attribute value by name.

Synopsis:

  $value = $e->getAttribute($name [, $situa]);
$name

The name of queried attribute.

$situa

The situation to be used (optional).

setAttribute

If attribute with specified name already exists, sets its value, otherwise inserts new attribute and sets its value.

Synopsis:

  $e->setAttribute($name, $value [, $situa]);
$name

The name of attribute to be set.

$value

The value of the new attribute.

$situa

The situation to be used (optional).

getAttributes

Returns the reference to the hash of all attributes of the element. This hash is NOT alive, i.e. the content of once created hash does not reflect the changes of DOM tree. Not in DOM spec.

Synopsis:

  $hashref = $e->getAttributes([$situa]);
$situa

The situation to be used (optional).

setAttributes

Calls $e->setAttribute for each name/value pair of referenced hash. Not in DOM spec.

Synopsis:

  $e->setAttributes($hashref [, $situa]);
$hashref

The HASHREF value. Referenced hash contains name/value pair to be used.

$situa

The situation to be used (optional).

attributes

Named node map of element attributes. This object IS alive. See XML::Sablotron::DOM::NamedNodeMap.

Synopsis:

  $e->attributes->method_of_NamedNodeMap;

removeAttribute

Removes an attribute by name.

Synopsis:

  $e->removeAttribute($name [, $situa]);
$name

The name of attribute to be removed.

$situa

The situation to be used (optional).

getAttributeNode

Retrieves an attribute node by name.

Synopsis:

  $node = $e->getAttributeNode($name [, $situa]);
$name

The name of queried attribute.

$situa

The situation to be used (optional).

setAttributeNode

Adds a new attribute node. If an attribute with that name is already present in the element, it is replaced by the new one.

Exceptions:

WRONG_DOCUMENT_ERR

Raised if the $att is from different document as $e.

INUSE_ATTRIBUTE_ERR

Raised if $att is attribute from another element.

Synopsis:

  $replaced = $e->setAttributeNode($att [, $situa]);
$att

The new attribute node.

$situa

The situation to be used (optional).

removeAttributeNode

Removes specified attribute and returns it.

Exceptions:

NO_MODIFICATION_ALLOWED_ERR

Raised if this node is read-only.

NOT_FOUND_ERR

Raised if attNode is not an attribute of the element.

Synopsis:

  $removed = $e->removeAttributeNode($attNode [, $situa]);
$attNode

The attribute node to be removed.

$situa

The situation to be used (optional).

getAttributeNS

Retrieves an attribute value by local name and namespace URI.

Synopsis:

  $value = $e->getAttributeNS($nsURI, $localName [, $situa]);
$nsURI

The namespace URI of queried attribute.

$localName

The local name of queried attribute.

$situa

The situation to be used (optional).

setAttributeNS

If attribute with specified namespace URI and local name already exists, sets its value and prefix; otherwise inserts new attribute and sets its value.

Synopsis:

  $removed = $e->setAttributeNS($nsURI, $qName, $value [, $situa]);
$nsURI

The namespace URI of attribute to be set.

$qName

The qualified name of attribute to be set.

$value

The value of the new attribute.

$situa

The situation to be used (optional).

removeAttributeNS

Removes an attribute by local name and namespace URI.

Exceptions:

NO_MODIFICATION_ALLOWED_ERR

Raised if this node is read-only.

Synopsis:

  $e->removeAttributeNS($namespaceURI, $localName [, $situa]);
$namespaceURI

The URI of attribute to be removed.

$localName

The local name of attribute to be removed.

$situa

The situation to be used (optional).

getAttributeNodeNS

Retrieves an attribute by local name and namespace URI.

Synopsis:

  $node = $e->getAttributeNodeNS($nsURI, $localName [, $situa]);
$nsURI

The namespace URI of queried attribute.

$localName

The local name of queried attribute.

$situa

The situation to be used (optional).

setAttributeNodeNS

If attribute with the same namespace URI and local name already exists, replaces it; otherwise inserts specified attribute.

Synopsis:

  $replaced = $e->setAttributeNS($att [, $situa]);
$att

The attribute to be set.

$situa

The situation to be used (optional).

hasAttribute

Returns true if attribute with the specified name already exists, (exactly returns 1); otherwise returns false (exactly 0).

Synopsis:

  $e->hasAttribute($name [, $situa]);
$name

The name of queried attribute.

$situa

The situation to be used (optional).

hasAttributeNS

Returns true if attribute with the specified namespace URI and local name already exists, (exactly returns 1); otherwise returns false (exactly 0).

Synopsis:

  $e->hasAttribute($nsURI, $localName [, $situa]);
$nsURI

The namespace URI of queried attribute.

$localName

The local name of queried attribute.

$situa

The situation to be used (optional).

toString

Serializes the element and its subtree into the string representation.

Synopsis:

  $e->toString([$situa])
$situa

The situation to be used (optional).

XML::Sablotron::DOM::Attribute

Represents the attribute.

name

Returns the attribute name.

Synopsis:

  $a->name([$situa])
$situa

The situation to be used (optional).

specified

Returns true (exactly 1).

Synopsis:

  $a->specified([$situa])
$situa

The situation to be used (optional).

value

Gets or sets value of the attribute. See XML::Sablotron::DOM::Node::nodeValue.

Synopsis:

  $a->value([$situa])
  $a->value($value [, $situa])
$value

The value to be set.

$situa

The situation to be used (optional).

ownerElement

Returns element owning the attribute, if any.

Synopsis:

  $e = $a->ownerElement([$situa])
$situa

The situation to be used (optional).

XML::Sablotron::DOM::CharacterData

Represents class, which serves as parent for another DOM objects.

data

Gets or sets character data of the node. See XML::Sablotron::DOM::nodeValue

Synopsis:

  $node->data([$situa])
  $node->data($data [, $situa])
$data

The character data to be set.

$situa

The situation to be used (optional).

length

Returns length of character data of the node.

Synopsis:

  $node->length([$situa])
$situa

The situation to be used (optional).

substringData

Returns substring of character data of the node.

Exceptions:

INDEX_SIZE_ERR

Raised if $offset < 0 or $count < 0 or $offset > length of data.

Synopsis:

  $node->substringData($offset, $count [, $situa])
$offset

Specifies, where (in the character data) the returned substring starts.

$count

Specifies the maximal count of returned characters.

$situa

The situation to be used (optional).

appendData

Appends specified substring to character data of the node.

Synopsis:

  $node->appendData($data [, $situa])
$data

Characters to be appended.

$situa

The situation to be used (optional).

insertData

Inserts specified substring to character data of the node.

Exceptions:

INDEX_SIZE_ERR

Raised if $offset < 0 or $offset > length of character data.

Synopsis:

  $node->insertData($offset, $data [, $situa])
$offset

Starting point in character data of newly inserted substring.

$data

Characters to be inserted.

$situa

The situation to be used (optional).

deleteData

Cuts specified substring from character data of the node.

Exceptions:

INDEX_SIZE_ERR

Raised if $offset < 0 or $count < 0 or $offset > length of data.

Synopsis:

  $node->deleteData($offset, $count [, $situa])
$offset

Specifies, where (in the character data) the cut substring starts.

$count

Specifies the maximal count of cut characters.

$situa

The situation to be used (optional).

replaceData

Replaces specified substring from character data of the node.

Exceptions:

INDEX_SIZE_ERR

Raised if $offset < 0 or $count < 0 or $offset > length of data.

Synopsis:

  $node->replaceData($offset, $count, $data [, $situa])
$offset

Specifies, where (in the character data) the replaced substring starts.

$count

Specifies the maximal count of replaced characters.

$data

Character data replacing specified substring.

$situa

The situation to be used (optional).

XML::Sablotron::DOM::Text

Represents a text node of DOM tree.

splitText

If length of data is greather than specified offset, inserts new text node behind original node and splits original node data to two chunks, the first chunk with offset length set to original node, the second chunk set to newly created node.

Exceptions:

INDEX_SIZE_ERR

Raised if $offset < 0 or $offset > length of data.

Synopsis:

  $node->splitText($offset [, $situa])
$offset

Specifies length of character data of original node.

$situa

The situation to be used (optional).

XML::Sablotron::DOM::ProcessingInstruction

Represents a processing instruction of DOM tree.

target

Gets the first token of node value.

Synopsis:

  $pi->target([$situa])
$situa

The situation to be used (optional).

data

Gets or sets the content of the processing instruction (text starting with the first non-whitespace character after target).

Synopsis:

  $pi->data([$situa])
  $pi->data($content [, $situa])
$content

Specifies the new content of the processing instruction.

$situa

The situation to be used (optional).

XML::Sablotron::DOM::NodeList

Represents a list of some items.

item

Returns the item on specified position in the list.

Synopsis:

  $list->item($index)
$index

The position of item.

length

Returns count of the list items.

Synopsis:

  $list->length()

XML::Sablotron::DOM::NamedNodeMap

Represents a collection of nodes that can be accessed by name.

getNamedItem

Returns the node specified by name.

Synopsis:

  $node = $nnm->getNamedItem($name)
$name

The name of queried node.

setNamedItem

Inserts or replaces node to map by its name.

Synopsis:

  $replaced = $nnm->setNamedItem($node)
$node

The node to be inserted.

removeNamedItem

Removes node from map by its name.

Exceptions:

NOT_FOUND_ERR

Raised if there is not node with specified name.

Synopsis:

  $removed = $nnm->removeNamedItem($name)
$name

The name of node to be removed.

getNamedItemNS

Returns the node specified by local name and namespace URI.

Synopsis:

  $node = $nnm->getNamedItemNS($nsURI, $localName)
$nsURI

The namespace URI of queried node.

$localName

The local name of queried node.

setNamedItemNS

Inserts or replaces node to map by its local name and namespace URI.

Synopsis:

  $replaced = $nnm->setNamedItemNS($node)
$node

The node to be inserted.

removeNamedItemNS

Removes node from map by its local name and namespace URI.

Exceptions:

NOT_FOUND_ERR

Raised if there is not node with specified name.

Synopsis:

  $removed = $nnm->removeNamedItemNS($nsURI, $localName)
$nsURI

The namespace URI of removed node.

$localName

The local name of removed node.

AUTHOR

Pavel Hlavnicka, pavel@gingerall.cz; Ginger Alliance LLC; Jan Poslusny, pajout@gingerall.cz; Ginger Alliance LLC;

SEE ALSO

perl(1).

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 2788:

You forgot a '=back' before '=head2'

Around line 2848:

You forgot a '=back' before '=head2'