# Poco::XML

# class DOMParser

Library: XML
Package: DOM
Header: Poco/DOM/DOMParser.h

## Description

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

## Member Summary

Member Functions: addEncoding, getEncoding, getEntityResolver, getFeature, getMaxElementDepth, parse, parseMemory, parseString, setEncoding, setEntityResolver, setFeature, setMaxElementDepth

## Enumerations

### Anonymous

DEFAULT_MAX_ELEMENT_DEPTH = 256

## Constructors

### DOMParser

explicit DOMParser(
NamePool * pNamePool = nullptr
);

Creates a new DOMParser. If a NamePool is given, it becomes the Document's NamePool.

### DOMParser

explicit 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.

## Destructor

### ~DOMParser

~DOMParser();

Destroys the DOMParser.

## Member Functions

### addEncoding

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

Adds an encoding to the parser.

### getEncoding

const XMLString & getEncoding() const;

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

### getEntityResolver

EntityResolver * getEntityResolver() const;

Returns the entity resolver used by the underlying SAXParser.

### getFeature

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.

### getMaxElementDepth

std::size_t getMaxElementDepth() const;

Returns the maximum element depth.

### parse

Document * parse(
const XMLString & uri
);

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

### parse

Document * parse(
InputSource * pInputSource
);

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

### parseMemory

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

Parse an XML document from memory.

### parseString

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

Parse an XML document from a string.

### setEncoding

void setEncoding(
const XMLString & encoding
);

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

### setEntityResolver

void setEntityResolver(
EntityResolver * pEntityResolver
);

Sets the entity resolver on the underlying SAXParser.

### setFeature

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.

### setMaxElementDepth

void setMaxElementDepth(
std::size_t limit
);

Limits the maximum element depth of the XML document to be loaded. Setting the limit to zero disables the limit.

This can be used to prevent excessive element depth, which could lead to a stack overflow when destroying the document.

The default limit is 256.

## Variables

### FEATURE_FILTER_WHITESPACE

static const XMLString FEATURE_FILTER_WHITESPACE;