// @(#)root/xmlparser:$Name: $:$Id: TXMLNode.h,v 1.1 2005/05/11 13:19:50 rdm Exp $
// Author: Jose Lo 12/4/2005
/*************************************************************************
* Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TXMLNode
#define ROOT_TXMLNode
//////////////////////////////////////////////////////////////////////////
// //
// TXMLNode //
// //
// TXMLNode contains a pointer to xmlNode, which is a node under the //
// DOM tree. A node can be an Element, an Attribute, a Text Node //
// or a Comment Node. //
// One can navigate the DOM tree by accessing the siblings and //
// parent or child nodes. Also retriving the Attribute or the Text in //
// an Element node. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
class TList;
struct _xmlNode;
class TXMLNode : public TObject {
private:
_xmlNode *fXMLNode; // libxml node
public:
// This enum is based on libxml tree Enum xmlElementType
enum EXMLElementType {
kXMLElementNode = 1,
kXMLAttributeNode = 2,
kXMLTextNode = 3,
kXMLCommentNode = 8
};
TXMLNode(_xmlNode *node);
virtual ~TXMLNode();
EXMLElementType GetNodeType() const;
const char *GetNodeName() const;
TXMLNode *GetChildren() const;
TXMLNode *GetParent() const;
TXMLNode *GetNextNode() const;
TXMLNode *GetPreviousNode() const;
const char *GetContent() const;
const char *GetText() const;
TList *GetAttributes() const;
Bool_t HasChildren() const;
Bool_t HasNextNode() const;
Bool_t HasParent() const;
Bool_t HasPreviousNode() const;
Bool_t HasAttributes() const;
const char *GetNamespaceHref() const;
const char *GetNamespacePrefix() const;
ClassDef(TXMLNode,0); // XML node under DOM tree
};
#endif
syntax highlighted by Code2HTML, v. 0.9.1