#include <Reader.h>
Public Types | |
typedef function< bool(Reader &)> | ProcessNode |
Public Member Functions | |
Reader (const InputStream &stream_r, const Validate &validate_r=Validate::none()) | |
Ctor. | |
~Reader () | |
Dtor. | |
XmlString | nodeText () |
If the curent node is not empty, advances the reader to the next node, and returns the value. | |
bool | nextNode () |
bool | nextNodeAttribute () |
bool | nextNodeOrAttribute () |
bool | atEnd () const |
const Node & | operator* () const |
const Node * | operator-> () const |
bool | foreachNode (ProcessNode fnc_r) |
bool | foreachNodeAttribute (ProcessNode fnc_r) |
bool | foreachNodeOrAttribute (ProcessNode fnc_r) |
bool | seekToNode (int depth_r, const std::string &name_r) |
bool | seekToEndNode (int depth_r, const std::string &name_r) |
Private Member Functions | |
void | close () |
Private Attributes | |
InputStream | _stream |
xmlTextReaderPtr | _reader |
Node | _node |
// Consume a node. bool consumeNode( XML::Reader & reader_r ) { DBG << *reader_r << endl; return true; } // Consume all nodes (omitting attributes) void example() { try { XML::Reader reader( "/Local/repodata/repomd.xml" ); reader.foreachNode( consumeNode ); } catch ( const Exception & ) { ; } // parse error }
// Consume a node. bool consumeNodeAndAttribute( XML::Reader & reader_r ) { consumeNode( reader_r ); return reader_r.foreachNodeAttribute( consumeNode ); } // Consume all nodes and thair attributes. void example() { Pathname repodata( "/Local/repodata/repomd.xml" ); try { XML::Reader reader( "/Local/repodata/repomd.xml" ); reader.foreachNode( consumeNodeAndAttribute ); // or: // reader.foreachNodeOrAttribute( consumeNode ) } catch ( const Exception & ) { ; } // parse error }
Definition at line 95 of file Reader.h.
typedef function<bool( Reader & )> zypp::xml::Reader::ProcessNode |
zypp::xml::Reader::Reader | ( | const InputStream & | stream_r, | |
const Validate & | validate_r = Validate::none() | |||
) |
Ctor.
Setup xmlTextReader and advance to the 1st Node.
Definition at line 109 of file Reader.cc.
References _reader, _stream, MIL, nextNode(), zypp::InputStream::stream(), and ZYPP_THROW.
zypp::xml::Reader::~Reader | ( | ) |
XmlString zypp::xml::Reader::nodeText | ( | ) |
If the curent node is not empty, advances the reader to the next node, and returns the value.
Definition at line 143 of file Reader.cc.
References _node, zypp::xml::Node::isEmptyElement(), nextNode(), zypp::xml::Node::nodeType(), and zypp::xml::Node::value().
Referenced by zypp::parser::yum::RepomdFileReader::Impl::consumeNode(), zypp::parser::yum::PatchesFileReader::Impl::consumeNode(), and zypp::parser::ws::WebpinResultFileReader::Impl::consumeNode().
bool zypp::xml::Reader::nextNode | ( | ) |
Definition at line 163 of file Reader.cc.
References _reader, and ZYPP_THROW.
Referenced by foreachNode(), nextNodeOrAttribute(), nodeText(), Reader(), seekToEndNode(), seekToNode(), and zypp::xml::ParseDef::Impl::take().
bool zypp::xml::Reader::nextNodeAttribute | ( | ) |
Definition at line 183 of file Reader.cc.
References _reader, and ZYPP_THROW.
Referenced by foreachNodeAttribute(), and nextNodeOrAttribute().
bool zypp::xml::Reader::nextNodeOrAttribute | ( | ) | [inline] |
Definition at line 124 of file Reader.h.
References nextNode(), and nextNodeAttribute().
Referenced by foreachNodeOrAttribute().
bool zypp::xml::Reader::atEnd | ( | ) | const [inline] |
Definition at line 128 of file Reader.h.
References _node, and zypp::xml::Node::readState().
Referenced by foreachNode(), foreachNodeOrAttribute(), seekToEndNode(), and seekToNode().
const Node& zypp::xml::Reader::operator* | ( | ) | const [inline] |
const Node* zypp::xml::Reader::operator-> | ( | ) | const [inline] |
bool zypp::xml::Reader::foreachNode | ( | ProcessNode | fnc_r | ) | [inline] |
Definition at line 144 of file Reader.h.
References _node, atEnd(), zypp::xml::Node::isAttribute(), and nextNode().
Referenced by zypp::parser::yum::RepomdFileReader::Impl::Impl(), zypp::parser::yum::PatchesFileReader::Impl::Impl(), zypp::parser::ws::WebpinResultFileReader::Impl::Impl(), and zypp::parser::RepoindexFileReader::Impl::Impl().
bool zypp::xml::Reader::foreachNodeAttribute | ( | ProcessNode | fnc_r | ) | [inline] |
Definition at line 157 of file Reader.h.
References _node, zypp::xml::Node::isAttribute(), and nextNodeAttribute().
bool zypp::xml::Reader::foreachNodeOrAttribute | ( | ProcessNode | fnc_r | ) | [inline] |
bool zypp::xml::Reader::seekToNode | ( | int | depth_r, | |
const std::string & | name_r | |||
) |
Definition at line 215 of file Reader.cc.
References _node, atEnd(), zypp::xml::Node::depth(), zypp::xml::Node::name(), nextNode(), and zypp::xml::Node::nodeType().
bool zypp::xml::Reader::seekToEndNode | ( | int | depth_r, | |
const std::string & | name_r | |||
) |
Definition at line 235 of file Reader.cc.
References _node, atEnd(), zypp::xml::Node::depth(), zypp::xml::Node::isEmptyElement(), zypp::xml::Node::name(), nextNode(), and zypp::xml::Node::nodeType().
Referenced by zypp::xml::ParseDef::Impl::skipNode().
void zypp::xml::Reader::close | ( | ) | [private] |
InputStream zypp::xml::Reader::_stream [private] |
xmlTextReaderPtr zypp::xml::Reader::_reader [private] |
Definition at line 192 of file Reader.h.
Referenced by close(), nextNode(), nextNodeAttribute(), Reader(), and ~Reader().
Node zypp::xml::Reader::_node [private] |
Definition at line 193 of file Reader.h.
Referenced by atEnd(), foreachNode(), foreachNodeAttribute(), nodeText(), operator*(), operator->(), seekToEndNode(), and seekToNode().