domnodeiteratorimpl.hpp
来自「IBM的解析xml的工具Xerces的源代码」· HPP 代码 · 共 122 行
HPP
122 行
#ifndef DOMNodeIteratorImpl_HEADER_GUARD_#define DOMNodeIteratorImpl_HEADER_GUARD_/* * Copyright 2001-2002,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Id: DOMNodeIteratorImpl.hpp,v 1.6 2004/09/26 01:06:30 cargilld Exp $ *///// This file is part of the internal implementation of the C++ XML DOM.// It should NOT be included or used directly by application programs.//// Applications should include the file <xercesc/dom/DOM.hpp> for the entire// DOM API, or xercesc/dom/DOM*.hpp for individual DOM classes, where the class// name is substituded for the *.////////////////////////////////////////////////////////////////////////// DOMNodeIteratorImpl.hpp: interface for the DOMNodeIteratorImpl class.////////////////////////////////////////////////////////////////////////#include <xercesc/dom/DOMNode.hpp>#include <xercesc/dom/DOMNodeIterator.hpp>XERCES_CPP_NAMESPACE_BEGINclass CDOM_EXPORT DOMNodeIteratorImpl : public DOMNodeIterator { private: // // Data // // The root. DOMNode* fRoot; // The Document used to create this iterator DOMDocument* fDocument; // The whatToShow mask. unsigned long fWhatToShow; // The NodeFilter reference. DOMNodeFilter* fNodeFilter; // The expandEntity reference flag. bool fExpandEntityReferences; bool fDetached; // // Iterator state - current node and direction. // // Note: The current node and direction are sufficient to implement // the desired behaviour of the current pointer being _between_ // two nodes. The fCurrentNode is actually the last node returned, // and the // direction is whether the pointer is in front or behind this node. // (usually akin to whether the node was returned via nextNode()) // (eg fForward = true) or previousNode() (eg fForward = false). // The last Node returned. DOMNode* fCurrentNode; // The direction of the iterator on the fCurrentNode. // <code> // nextNode() == fForward = true;<br> // previousNode() == fForward = false;<br> // </code> bool fForward; public: virtual ~DOMNodeIteratorImpl (); DOMNodeIteratorImpl ( DOMDocument* fDocument, DOMNode* root, unsigned long whatToShow, DOMNodeFilter* nodeFilter, bool expandEntityRef); DOMNodeIteratorImpl ( const DOMNodeIteratorImpl& toCopy); DOMNodeIteratorImpl& operator= (const DOMNodeIteratorImpl& other); virtual DOMNode* getRoot (); virtual unsigned long getWhatToShow (); virtual DOMNodeFilter* getFilter (); // Get the expandEntity reference flag. virtual bool getExpandEntityReferences(); virtual DOMNode* nextNode (); virtual DOMNode* previousNode (); virtual void detach (); virtual void release(); void removeNode (DOMNode* node); private: DOMNode* matchNodeOrParent (DOMNode* node); DOMNode* nextNode (DOMNode* node, bool visitChildren); DOMNode* previousNode (DOMNode* node); bool acceptNode (DOMNode* node);};XERCES_CPP_NAMESPACE_END#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?