libzypp  17.14.0
Node.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_PARSER_XML_NODE_H
13 #define ZYPP_PARSER_XML_NODE_H
14 
15 #include <iosfwd>
16 
18 
20 namespace zypp
21 {
22 
23  namespace xml
24  {
25 
27  //
28  // CLASS NAME : Node
29  //
35  class Node
36  {
37  public:
39  Node();
40 
42  Node( xmlTextReaderPtr const & reader_r );
43 
45  explicit operator bool() const
46  { return _reader; }
47 
48  public:
50  int attributeCount() const
51  { return xmlTextReaderAttributeCount( _reader ); }
52 
55  { return xmlTextReaderConstBaseUri( _reader ); }
56 
58  int columnNumber() const
59  { return xmlTextReaderGetParserColumnNumber( _reader ); }
60 
62  int depth() const
63  { return xmlTextReaderDepth( _reader ); }
64 
67  { return xmlTextReaderConstEncoding( _reader ); }
68 
71  XmlString getAttribute( const char * name_r ) const
72  { return XmlString( xmlTextReaderGetAttribute( _reader, reinterpret_cast<const xmlChar *>(name_r) ),
73  XmlString::FREE ); }
75  XmlString getAttribute( const std::string & name_r ) const
76  { return getAttribute( name_r.c_str() ); }
77 
80  XmlString getAttributeNo( int no_r ) const
81  { return XmlString( xmlTextReaderGetAttributeNo( _reader, no_r ), XmlString::FREE ); }
82 
84  int hasAttributes() const
85  { return xmlTextReaderHasAttributes( _reader ); }
86 
88  int hasValue() const
89  { return xmlTextReaderHasValue( _reader ); }
90 
92  bool isAttribute() const
93  { return( nodeType() == XML_READER_TYPE_ATTRIBUTE ); }
94 
97  int isDefault() const
98  { return xmlTextReaderIsDefault( _reader ); }
99 
101  int isEmptyElement() const
102  { return xmlTextReaderIsEmptyElement( _reader ); }
103 
106  int isNamespaceDecl() const
107  { return xmlTextReaderIsNamespaceDecl( _reader ); }
108 
110  int lineNumber() const
111  { return xmlTextReaderGetParserLineNumber( _reader ); }
112 
115  { return xmlTextReaderConstLocalName( _reader ); }
116 
118  XmlString name() const
119  { return xmlTextReaderConstName( _reader ); }
120 
123  { return xmlTextReaderConstNamespaceUri( _reader ); }
124 
127  { return (NodeType)xmlTextReaderNodeType( _reader ); }
128 
131  { return xmlTextReaderConstPrefix( _reader ); }
132 
135  int quoteChar() const
136  { return xmlTextReaderQuoteChar( _reader ); }
137 
140  { return (ReadState)xmlTextReaderReadState( _reader ); }
141 
143  XmlString value() const
144  { return xmlTextReaderConstValue( _reader ); }
145 
148  { return XmlString( xmlTextReaderValue( _reader ), XmlString::FREE ); }
149 
152  { return xmlTextReaderConstXmlLang( _reader ); }
153 
156  { return xmlTextReaderConstXmlVersion( _reader ); }
157 
158  private:
160  static xmlTextReaderPtr const _no_reader;
162  xmlTextReaderPtr const & _reader;
163  };
165 
167  std::ostream & operator<<( std::ostream & str, const Node & obj );
168 
170  } // namespace xml
173 } // namespace zypp
175 #endif // ZYPP_PARSER_XML_NODE_H