#include "../config/pathan_config.h" /* * Copyright (c) 2001, DecisionSoft Limited All rights reserved. * Please see LICENSE.TXT for more information. */ #include #include #include NavStepImpl::Axis AncestorAxis::getAxis() const { return NavStepImpl::ANCESTOR; } Sequence AncestorAxis::makeList(const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *node, const XMLCh* const uri, DynamicContext* context) const { XPath2MemoryManager* memMgr=context->getMemoryManager(); Sequence ancestorList(memMgr); //Add all ancestors const XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *curNode = node; do { curNode = getParent(curNode); if(curNode == 0) { break; } if(curNode->getNodeType()!=XERCES_CPP_NAMESPACE_QUALIFIER DOMNode::ENTITY_REFERENCE_NODE && filterNode(curNode, uri, context)) ancestorList.addItemFront(memMgr->createNode(curNode)); } while(curNode->getNodeType() != 0); return ancestorList; }