Contains a list of the entities declared in the document type declaration.
Set objXMLDOMNamedNodeMap = oXMLDOMDocumentType.entities
HRESULT get_entities(
IXMLDOMNamedNodeMap **entityMap);
In the following document type declaration example, the node list in this property contains the entities "bat" and "bar" but not "baz":
<!DOCTYPE ex SYSTEM "ex.dtd" [ <!ENTITY bat "bat"> <!ENTITY bar "bar"> <!ENTITY % baz "baz"> ]>
IXMLDOMEntity *GetRootEntity()
{
HRESULT hr;
IXMLDOMNamedNodeMap *pIXMLDOMNamedNodeMapEntities = NULL;
IXMLDOMEntity *pIXMLDOMEntity = NULL;
IXMLDOMNode *pIXMLDOMNode = NULL;
IXMLDOMDocument *pIXMLDOMDocument = NULL;
IXMLDOMDocumentType *pIXMLDOMDocumentType = NULL;
try
{
// Create an instance of DOMDocument and initialize
// pIXMLDOMDocument.
// Load/create an XML fragment.
hr = pIXMLDOMDocument->get_doctype(&pIXMLDOMDocumentType);
SUCCEEDED(hr) ? 0 : throw hr;
if(pIXMLDOMDocumentType)
{
hr = pIXMLDOMDocumentType->get_entities
(&pIXMLDOMNamedNodeMapEntities);
if(SUCCEEDED(hr) && pIXMLDOMNamedNodeMapEntities)
{
hr = pIXMLDOMNamedNodeMapEntities->nextNode(&pIXMLDOMNode);
if(SUCCEEDED(hr) && pIXMLDOMNode)
{
hr = pIXMLDOMNode->QueryInterface(IID_IXMLDOMEntity,
(void**)&pIXMLDOMEntity );
SUCCEEDED(hr) ? 0 : throw hr;
pIXMLDOMNode->Release();
pIXMLDOMNode = NULL;
}
pIXMLDOMNamedNodeMapEntities->Release();
}
pIXMLDOMDocumentType->Release();
}
}
catch(...)
{
if(pIXMLDOMNode)
pIXMLDOMNode->Release();
DisplayErrorToUser();
}
// Release pIXMLDOMEntity when finished using it.
return pIXMLDOMEntity;
}