class Poco::XML::CharacterData

Overview

The CharacterData interface extends Node with a set of attributes and methods for accessing character data in the DOM. More…

#include <CharacterData.h>

class CharacterData: public Poco::XML::AbstractNode
{
public:
    // methods

    const XMLString&
    data() const;

    const XMLString&
    getData() const;

    void
    setData(const XMLString& data);

    unsigned long
    length() const;

    XMLString
    substringData(
        unsigned long offset,
        unsigned long count
        ) const;

    void
    appendData(const XMLString& arg);

    void
    insertData(
        unsigned long offset,
        const XMLString& arg
        );

    void
    deleteData(
        unsigned long offset,
        unsigned long count
        );

    void
    replaceData(
        unsigned long offset,
        unsigned long count,
        const XMLString& arg
        );

    XMLString
    trimmedData() const;

    virtual
    const XMLString&
    getNodeValue() const;

    virtual
    void
    setNodeValue(const XMLString& value);

protected:
    // construction

    CharacterData(
        Document* pOwnerDocument,
        const XMLString& data
        );

    CharacterData(
        Document* pOwnerDocument,
        const CharacterData& data
        );
};

// direct descendants

class Comment;
class Text;

Inherited Members

public:
    // typedefs

    typedef Poco::XML::NamespaceSupport NSMap;

    // enums

    enum
    {
        ELEMENT_NODE                = 1,
        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,
    };

    // methods

    void
    duplicate() const;

    void
    release() const;

    virtual
    void
    autoRelease() = 0;

    virtual
    void
    addEventListener(
        const XMLString& type,
        EventListener* listener,
        bool useCapture
        ) = 0;

    virtual
    void
    removeEventListener(
        const XMLString& type,
        EventListener* listener,
        bool useCapture
        ) = 0;

    virtual
    bool
    dispatchEvent(Event* evt) = 0;

    virtual
    const XMLString&
    nodeName() const = 0;

    const XMLString&
    nodeValue() const;

    virtual
    const XMLString&
    getNodeValue() const = 0;

    virtual
    void
    setNodeValue(const XMLString& value) = 0;

    virtual
    unsigned short
    nodeType() const = 0;

    virtual
    Node*
    parentNode() const = 0;

    virtual
    NodeList*
    childNodes() const = 0;

    virtual
    Node*
    firstChild() const = 0;

    virtual
    Node*
    lastChild() const = 0;

    virtual
    Node*
    previousSibling() const = 0;

    virtual
    Node*
    nextSibling() const = 0;

    virtual
    NamedNodeMap*
    attributes() const = 0;

    virtual
    Document*
    ownerDocument() const = 0;

    virtual
    Node*
    insertBefore(
        Node* newChild,
        Node* refChild
        ) = 0;

    virtual
    Node*
    replaceChild(
        Node* newChild,
        Node* oldChild
        ) = 0;

    virtual
    Node*
    removeChild(Node* oldChild) = 0;

    virtual
    Node*
    appendChild(Node* newChild) = 0;

    virtual
    bool
    hasChildNodes() const = 0;

    virtual
    Node*
    cloneNode(bool deep) const = 0;

    virtual
    void
    normalize() = 0;

    virtual
    bool
    isSupported(
        const XMLString& feature,
        const XMLString& version
        ) const = 0;

    virtual
    const XMLString&
    namespaceURI() const = 0;

    virtual
    XMLString
    prefix() const = 0;

    virtual
    const XMLString&
    localName() const = 0;

    virtual
    bool
    hasAttributes() const = 0;

    virtual
    XMLString
    innerText() const = 0;

    virtual
    Node*
    getNodeByPath(const XMLString& path) const = 0;

    virtual
    Node*
    getNodeByPathNS(
        const XMLString& path,
        const NSMap& nsMap
        ) const = 0;

    virtual
    const XMLString&
    nodeName() const;

    virtual
    const XMLString&
    getNodeValue() const;

    virtual
    void
    setNodeValue(const XMLString& value);

    virtual
    Node*
    parentNode() const;

    virtual
    NodeList*
    childNodes() const;

    virtual
    Node*
    firstChild() const;

    virtual
    Node*
    lastChild() const;

    virtual
    Node*
    previousSibling() const;

    virtual
    Node*
    nextSibling() const;

    virtual
    NamedNodeMap*
    attributes() const;

    virtual
    Document*
    ownerDocument() const;

    virtual
    Node*
    insertBefore(
        Node* newChild,
        Node* refChild
        );

    virtual
    Node*
    replaceChild(
        Node* newChild,
        Node* oldChild
        );

    virtual
    Node*
    removeChild(Node* oldChild);

    virtual
    Node*
    appendChild(Node* newChild);

    virtual
    bool
    hasChildNodes() const;

    virtual
    Node*
    cloneNode(bool deep) const;

    virtual
    void
    normalize();

    virtual
    bool
    isSupported(
        const XMLString& feature,
        const XMLString& version
        ) const;

    virtual
    const XMLString&
    namespaceURI() const;

    virtual
    XMLString
    prefix() const;

    virtual
    const XMLString&
    localName() const;

    virtual
    bool
    hasAttributes() const;

    virtual
    void
    addEventListener(
        const XMLString& type,
        EventListener* listener,
        bool useCapture
        );

    virtual
    void
    removeEventListener(
        const XMLString& type,
        EventListener* listener,
        bool useCapture
        );

    virtual
    bool
    dispatchEvent(Event* evt);

    virtual
    XMLString
    innerText() const;

    virtual
    Node*
    getNodeByPath(const XMLString& path) const;

    virtual
    Node*
    getNodeByPathNS(
        const XMLString& path,
        const NSMap& nsMap
        ) const;

    virtual
    void
    autoRelease();

protected:
    // fields

    static const XMLString EMPTY_STRING;

    // methods

    virtual
    Node*
    copyNode(
        bool deep,
        Document* pOwnerDocument
        ) const = 0;

    virtual
    bool
    events() const;

    virtual
    bool
    eventsSuspended() const;

    void
    captureEvent(Event* evt);

    void
    bubbleEvent(Event* evt);

    void
    dispatchSubtreeModified();

    void
    dispatchNodeInserted();

    void
    dispatchNodeRemoved();

    virtual
    void
    dispatchNodeRemovedFromDocument();

    virtual
    void
    dispatchNodeInsertedIntoDocument();

    void
    dispatchAttrModified(
        Attr* pAttr,
        MutationEvent::AttrChangeType changeType,
        const XMLString& prevValue,
        const XMLString& newValue
        );

    void
    dispatchCharacterDataModified(
        const XMLString& prevValue,
        const XMLString& newValue
        );

    void
    setOwnerDocument(Document* pOwnerDocument);

Detailed Documentation

The CharacterData interface extends Node with a set of attributes and methods for accessing character data in the DOM.

For clarity this set is defined here rather than on each object that uses these attributes and methods. No DOM objects correspond directly to CharacterData, though Text and others do inherit the interface from it. All offsets in this interface start from 0.

Text strings in the DOM are represented in either UTF-8 (if XML_UNICODE_WCHAR_T is not defined) or in UTF-16 (if XML_UNICODE_WCHAR_T is defined). Indexing on character data is done in XMLChar units.

Methods

const XMLString&
data() const

Returns the character data of the node that implements the interface.

const XMLString&
getData() const

Returns the character data of the node that implements the interface.

void
setData(const XMLString& data)

Sets the character data of the node that implements the interface.

unsigned long
length() const

Returns the number of XMLChars that are available through getData and substringData.

This may have the value zero.

XMLString
substringData(
    unsigned long offset,
    unsigned long count
    ) const

Extracts a range of data from the node.

If offset and count exceeds the length, then all the characters to the end of the data are returned.

void
appendData(const XMLString& arg)

Append the string to the end of the character data of the node.

void
insertData(
    unsigned long offset,
    const XMLString& arg
    )

Insert a string at the specified character offset.

void
deleteData(
    unsigned long offset,
    unsigned long count
    )

Remove a range of characters from the node.

void
replaceData(
    unsigned long offset,
    unsigned long count,
    const XMLString& arg
    )

Replace the characters starting at the specified character offset with the specified string.

XMLString
trimmedData() const

Returns the character data of that node with all surrounding whitespace removed.

This method is an extension to the W3C Document Object Model.

virtual
const XMLString&
getNodeValue() const

Returns the value of this node, depending on its type.

virtual
void
setNodeValue(const XMLString& value)

Sets the value of this node.

Throws an exception if the node is read-only.