Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TXMLNode.h
Go to the documentation of this file.
1 // @(#)root/xmlparser:$Id$
2 // Author: Jose Lo 12/4/2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TXMLNode
13 #define ROOT_TXMLNode
14 
15 #include "TObject.h"
16 
17 #include "TString.h"
18 
19 class TList;
20 struct _xmlNode;
21 
22 class TXMLNode : public TObject {
23 
24 private:
25  TXMLNode(const TXMLNode&); // Not implemented
26  TXMLNode& operator=(const TXMLNode&); // Not implemented
27 
28  _xmlNode *fXMLNode; ///< libxml node
29 
30  TXMLNode *fParent; ///< Parent node
31  TXMLNode *fChildren; ///< Children node
32  TXMLNode *fNextNode; ///< Next sibling node
33  TXMLNode *fPreviousNode; ///< Previous sibling node
34  TList *fAttrList; ///< List of Attributes
35 
36 public:
37  /// This enum is based on libxml tree Enum xmlElementType
38  enum EXMLElementType {
39  kXMLElementNode = 1,
40  kXMLAttributeNode = 2,
41  kXMLTextNode = 3,
42  kXMLCommentNode = 8
43  };
44 
45  TXMLNode(_xmlNode *node, TXMLNode* parent=0, TXMLNode* previous=0);
46 
47  virtual ~TXMLNode();
48 
49  EXMLElementType GetNodeType() const;
50  const char *GetNodeName() const;
51  TXMLNode *GetChildren();
52  TXMLNode *GetParent() const;
53  TXMLNode *GetNextNode();
54  TXMLNode *GetPreviousNode() const;
55  const char *GetContent() const;
56  const char *GetText() const;
57  TList *GetAttributes();
58 
59  Bool_t HasChildren() const;
60  Bool_t HasNextNode() const;
61  Bool_t HasParent() const;
62  Bool_t HasPreviousNode() const;
63  Bool_t HasAttributes() const;
64 
65  const char *GetNamespaceHref() const;
66  const char *GetNamespacePrefix() const;
67 
68  ClassDef(TXMLNode,0); // XML node under DOM tree
69 };
70 
71 #endif