diff --git a/src/xercesc/dom/impl/DOMTreeWalkerImpl.cpp b/src/xercesc/dom/impl/DOMTreeWalkerImpl.cpp index fc1c04d66e9eec59f4f7148564451bee385f5e5b..dd68e7a6393be27db35440a7124c24c7416124de 100644 --- a/src/xercesc/dom/impl/DOMTreeWalkerImpl.cpp +++ b/src/xercesc/dom/impl/DOMTreeWalkerImpl.cpp @@ -132,6 +132,9 @@ DOMNode* DOMTreeWalkerImpl::firstChild () { if (!fCurrentNode) return 0; + if(!fExpandEntityReferences && fCurrentNode->getNodeType()==DOMNode::ENTITY_REFERENCE_NODE) + return 0; + DOMNode* node = getFirstChild(fCurrentNode); if (node != 0) { @@ -149,6 +152,9 @@ DOMNode* DOMTreeWalkerImpl::lastChild () { if (!fCurrentNode) return 0; + if(!fExpandEntityReferences && fCurrentNode->getNodeType()==DOMNode::ENTITY_REFERENCE_NODE) + return 0; + DOMNode* node = getLastChild(fCurrentNode); if (node != 0) { fCurrentNode = node; @@ -386,6 +392,9 @@ DOMNode* DOMTreeWalkerImpl::getFirstChild (DOMNode* node) { if (!node) return 0; + if(!fExpandEntityReferences && node->getNodeType()==DOMNode::ENTITY_REFERENCE_NODE) + return 0; + DOMNode* newNode = node->getFirstChild(); if (!newNode) return 0; @@ -414,6 +423,9 @@ DOMNode* DOMTreeWalkerImpl::getLastChild (DOMNode* node) { if (!node) return 0; + if(!fExpandEntityReferences && node->getNodeType()==DOMNode::ENTITY_REFERENCE_NODE) + return 0; + DOMNode* newNode = node->getLastChild(); if (!newNode) return 0;