class Poco::XML::DOMParser

Overview

This is a convenience class that combines a DOMBuilder with a SAXParser, with the optional support of a WhitespaceFilter. More…

#include <DOMParser.h>

class DOMParser
{
public:
    // fields

    static const XMLString FEATURE_FILTER_WHITESPACE;

    // construction

    DOMParser(NamePool* pNamePool = 0);
    DOMParser(unsigned long namePoolSize);

    // methods

    void
    setEncoding(const XMLString& encoding);

    const XMLString&
    getEncoding() const;

    void
    addEncoding(
        const XMLString& name,
        Poco::TextEncoding* pEncoding
        );

    void
    setFeature(
        const XMLString& name,
        bool state
        );

    bool
    getFeature(const XMLString& name) const;

    Document*
    parse(const XMLString& uri);

    Document*
    parse(InputSource* pInputSource);

    Document*
    parseString(const std::string& xml);

    Document*
    parseMemory(
        const char* xml,
        std::size_t size
        );

    EntityResolver*
    getEntityResolver() const;

    void
    setEntityResolver(EntityResolver* pEntityResolver);
};

Detailed Documentation

This is a convenience class that combines a DOMBuilder with a SAXParser, with the optional support of a WhitespaceFilter.

Construction

DOMParser(NamePool* pNamePool = 0)

Creates a new DOMParser.

If a NamePool is given, it becomes the Document ‘s NamePool.

DOMParser(unsigned long namePoolSize)

Creates a new DOMParser, using the given NamePool size.

The given namePoolSize should be a suitable prime number, e.g. 251, 509, 1021 or 4093, depending on the expected size of the document.

Methods

void
setEncoding(const XMLString& encoding)

Sets the encoding used by the parser if no encoding is specified in the XML document.

const XMLString&
getEncoding() const

Returns the name of the encoding used by the parser if no encoding is specified in the XML document.

void
addEncoding(
    const XMLString& name,
    Poco::TextEncoding* pEncoding
    )

Adds an encoding to the parser.

void
setFeature(
    const XMLString& name,
    bool state
    )

Set the state of a feature.

If a feature is not recognized by the DOMParser, it is passed on to the underlying XMLReader.

The only currently supported feature is http://www.appinf.com/features/no-whitespace-in-element-content which, when activated, causes the WhitespaceFilter to be used.

bool
getFeature(const XMLString& name) const

Look up the value of a feature.

If a feature is not recognized by the DOMParser, the DOMParser queries the underlying SAXParser for the feature.

Document*
parse(const XMLString& uri)

Parse an XML document from a location identified by an URI.

Document*
parse(InputSource* pInputSource)

Parse an XML document from a location identified by an InputSource.

Document*
parseString(const std::string& xml)

Parse an XML document from a string.

Document*
parseMemory(
    const char* xml,
    std::size_t size
    )

Parse an XML document from memory.

EntityResolver*
getEntityResolver() const

Returns the entity resolver used by the underlying SAXParser.

void
setEntityResolver(EntityResolver* pEntityResolver)

Sets the entity resolver on the underlying SAXParser.