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 = 0
);
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
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;