---
name: "XML::Sablotron::DOM"
section: "3pm"
platform: "linux"
package: "libxml-sablot-perl"
version: "1.0-2+b1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/XML::Sablotron::DOM"
---

# XML::Sablotron::DOM(3pm)

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

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

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

The situation to be used. The URI of the document to be parsed.\
 **parseBuffer** This function parses the literal data specified.

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

The situation to be used. 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);
```

The situation to be used. 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);
```

The situation to be used. The string containing the stylesheet to be parsed. 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);
```

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]);
```

The situation to be used (optional).\
 **setNodeName** Sets the name of the node. Not in DOM spec. **Exceptions:** 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 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]);
```

The new node name. The situation to be used (optional).\
 **nodeName** Gets or sets the name of the node. **Exceptions:** **Synopsis:**

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

The new node name. 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]);
```

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:** for ELEMENT\_NODE, DOCUMENT\_NODE 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]);
```

The new node value. 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:** **Synopsis:**\
   `$node`-\>nodeValue(\[$situa\]);\
   `$node`-\>nodeValue($value \[, `$situa`\]); The new node value. 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]);
```

The situation to be used (optional).\
 **nodeType** Returns the node type. See "XML::Sablotron::DOM" for more details. **Synopsis:**

```
  $node->nodeType([$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]);
```

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]);
```

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]);
```

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]);
```

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]);
```

The situation to be used (optional).\
 **firstChild** Get the first child of the node or undef. **Synopsis:**

```
  $node->firstChild([$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]);
```

The situation to be used (optional).\
 **lastChild** Get the last child of the node or undef. **Synopsis:**

```
  $node->lastChild([$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]);
```

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]);
```

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]);
```

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]);
```

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]);
```

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]);
```

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:** Raised if the node doesn't allow children of given type. Raised if the new node is not owned by the same document as the node. **Synopsis:**

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

The inserted 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. The situation to be used (optional).\
 **replaceChild** Replace the child node with the new one. Returns replaced (old) child. **Exceptions:** Raised if the node doesn't allow children of given type. Raised if the new node is not owned by the same document as the node. Raised if the replaced node is not the child of the node. **Synopsis:**

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

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. The node to be replaced. The situation to be used (optional).\
 **removeChild** Remove the child node from the list of children of the node. **Exceptions:** Raised if the removed node is not the child of the node. **Synopsis:**

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

The node to be removed. The situation to be used (optional).\
 **appendChild** Appends the new node to the list of children of the node. **Exceptions:** Raised if the node doesn't allow children of given type. Raised if the new node is not owned by the same document as the node. **Synopsis:**

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

The node to be appended. The situation to be used (optional).\
 **hasChildNodes** Returns the count of child nodes. **Synopsis:**

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

The situation to be used (optional).\
 **cloneNode** Returns the copy of node. **Exceptions:** Raised if the node is document. **Synopsis:**

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

Boolean flag causing deep copying of node. 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]);
```

The situation to be used (optional).\
 **prefix** Gets or sets prefix of the node. **Synopsis:**

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

The new value of node prefix. The situation to be used (optional). If used, cannot be undef.\
 **localName** Returns local name of the node. **Synopsis:**

```
  $node->localName([$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]);
```

The expression to be replaced. 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]);
```

The expression to be replaced. Hashref to namespace mappings like { prefix =\> uri, ...} The situation to be used (optional). 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]);
```

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]);
```

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]);
```

The situation to be used (optional).\
 **toString** Serializes the document tree into the string representation. Not in DOM spec. **Synopsis:**

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

The situation to be used (optional).\
 **documentElement** Returns the root element of the document. **Synopsis:**

```
  $doc->documentElement([$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]);
```

The new element name. 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]);
```

The initial value of the node. 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]);
```

The initial value of the node. 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]);
```

The initial value of the node. 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]);
```

The target for the PI. The data for the PI. The situation to be used (optional).\
 **createAttribute** Creates the new attribute. The owner document is set to the document. **Synopsis:**

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

The name of the attribute. 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]);
```

The node to be cloned. If true, all children of the node are cloned too. 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]);
```

The node to be cloned. If true, all children of the node are cloned too. 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:** Raised if the specified qualified name contains an illegal character. 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]);
```

The uri of namespace, where the created element exist in. The qualified name of created element. The situation to be used (optional).\
 **createAttributeNS** Creates the new attribute. The owner document is set to the document. **Exceptions:** Raised if the specified qualified name contains an illegal character. 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]);
```

The uri of namespace, where the created attribute exist in. The qualified name of created attribute. The situation to be used (optional). Represents the element of the tree.\
 **tagName** Returns the element name. **Synopsis:**

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

The situation to be used (optional).\
 **getAttribute** Retrieves an attribute value by name. **Synopsis:**

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

The name of queried attribute. 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]);
```

The name of attribute to be set. The value of the new attribute. 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]);
```

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]);
```

The HASHREF value. Referenced hash contains name/value pair to be used. 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]);
```

The name of attribute to be removed. The situation to be used (optional).\
 **getAttributeNode** Retrieves an attribute node by name. **Synopsis:**

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

The name of queried attribute. 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:** Raised if the `$att` is from different document as `$e`. Raised if `$att` is attribute from another element. **Synopsis:**

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

The new attribute node. The situation to be used (optional).\
 **removeAttributeNode** Removes specified attribute and returns it. **Exceptions:** Raised if this node is read-only. Raised if attNode is not an attribute of the element. **Synopsis:**

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

The attribute node to be removed. The situation to be used (optional).\
 **getAttributeNS** Retrieves an attribute value by local name and namespace URI. **Synopsis:**

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

The namespace URI of queried attribute. The local name of queried attribute. 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]);
```

The namespace URI of attribute to be set. The qualified name of attribute to be set. The value of the new attribute. The situation to be used (optional).\
 **removeAttributeNS** Removes an attribute by local name and namespace URI. **Exceptions:** Raised if this node is read-only. **Synopsis:**

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

The URI of attribute to be removed. The local name of attribute to be removed. The situation to be used (optional).\
 **getAttributeNodeNS** Retrieves an attribute by local name and namespace URI. **Synopsis:**

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

The namespace URI of queried attribute. The local name of queried attribute. 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]);
```

The attribute to be set. 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]);
```

The name of queried attribute. 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]);
```

The namespace URI of queried attribute. The local name of queried attribute. The situation to be used (optional).\
 **toString** Serializes the element and its subtree into the string representation. **Synopsis:**

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

The situation to be used (optional). Represents the attribute.\
 **name** Returns the attribute name. **Synopsis:**

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

The situation to be used (optional).\
 **specified** Returns true (exactly 1). **Synopsis:**

```
  $a->specified([$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])
```

The value to be set. The situation to be used (optional).\
 **ownerElement** Returns element owning the attribute, if any. **Synopsis:**

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

The situation to be used (optional). 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])
```

The character data to be set. The situation to be used (optional).\
 **length** Returns length of character data of the node. **Synopsis:**

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

The situation to be used (optional).\
 **substringData** Returns substring of character data of the node. **Exceptions:** Raised if `$offset` \< 0 or `$count` \< 0 or `$offset` \> length of data. **Synopsis:**

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

Specifies, where (in the character data) the returned substring starts. Specifies the maximal count of returned characters. The situation to be used (optional).\
 **appendData** Appends specified substring to character data of the node. **Synopsis:**

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

Characters to be appended. The situation to be used (optional).\
 **insertData** Inserts specified substring to character data of the node. **Exceptions:** Raised if `$offset` \< 0 or `$offset` \> length of character data. **Synopsis:**

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

Starting point in character data of newly inserted substring. Characters to be inserted. The situation to be used (optional).\
 **deleteData** Cuts specified substring from character data of the node. **Exceptions:** Raised if `$offset` \< 0 or `$count` \< 0 or `$offset` \> length of data. **Synopsis:**

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

Specifies, where (in the character data) the cut substring starts. Specifies the maximal count of cut characters. The situation to be used (optional).\
 **replaceData** Replaces specified substring from character data of the node. **Exceptions:** Raised if `$offset` \< 0 or `$count` \< 0 or `$offset` \> length of data. **Synopsis:**

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

Specifies, where (in the character data) the replaced substring starts. Specifies the maximal count of replaced characters. Character data replacing specified substring. The situation to be used (optional). 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:** Raised if `$offset` \< 0 or `$offset` \> length of data. **Synopsis:**

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

Specifies length of character data of original node. The situation to be used (optional). Represents a processing instruction of DOM tree.\
 **target** Gets the first token of node value. **Synopsis:**

```
  $pi->target([$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])
```

Specifies the new content of the processing instruction. The situation to be used (optional). Represents a list of some items.\
 **item** Returns the item on specified position in the list. **Synopsis:**

```
  $list->item($index)
```

The position of item.\
 **length** Returns count of the list items. **Synopsis:**

```
  $list->length()
```

Represents a collection of nodes that can be accessed by name.\
 **getNamedItem** Returns the node specified by name. **Synopsis:**

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

The name of queried node.\
 **setNamedItem** Inserts or replaces node to map by its name. **Synopsis:**

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

The node to be inserted.\
 **removeNamedItem** Removes node from map by its name. **Exceptions:** Raised if there is not node with specified name. **Synopsis:**

```
  $removed = $nnm->removeNamedItem($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)
```

The namespace URI of queried node. 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)
```

The node to be inserted.\
 **removeNamedItemNS** Removes node from map by its local name and namespace URI. **Exceptions:** Raised if there is not node with specified name. **Synopsis:**

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

The namespace URI of removed node. The local name of removed node. Pavel Hlavnicka, pavel@gingerall.cz; Ginger Alliance LLC; Jan Poslusny, pajout@gingerall.cz; Ginger Alliance LLC; [*perl*(1)](/perl/1.md). Hey! **The above document had some coding errors, which are explained below:** You forgot a '=back' before '=head2' You forgot a '=back' before '=head2'
