Namespaces | |
namespace | parse_def_assign |
parseDefAssign exposed details | |
Classes | |
class | Node |
xmlTextReader based interface to Reader's current node. More... | |
struct | ParseDefImplConsume |
class | ParseDef |
Define a xml node structure to parse. More... | |
struct | ParseDefConsume |
Base class for ParseDef consumer. More... | |
class | ParseDefConsumeRedirect |
ParseDef consumer redirecting all events to another consumer. More... | |
class | ParseDefConsumeCallback |
ParseDef consumer that invokes callbacks. More... | |
struct | ParseDefException |
Common base class for ParseDef exceptions. More... | |
struct | ParseDefBuildException |
Exceptions when building a ParseDef tree. More... | |
struct | ParseDefValidateException |
Parse exceptions related to the documents node structure. More... | |
struct | ParseDefDataException |
Parse exceptions related to the nodes content. More... | |
struct | ParseDefTraits |
struct | Validate |
xmlTextReader document validation. More... | |
class | Reader |
xmlTextReader based interface to iterate xml streams. More... | |
class | XmlString |
xmlChar * wrapper. More... | |
Typedefs | |
typedef xmlTextReaderMode | ReadState |
typedef xmlReaderTypes | NodeType |
Functions | |
std::ostream & | operator<< (std::ostream &str, const ReadState &obj) |
std::ostream & | operator<< (std::ostream &str, const NodeType &obj) |
std::ostream & | operator<< (std::ostream &str, const Node &obj) |
template<class _Data > | |
void | rnParse (const InputStream &input_r, _Data &data_r) |
Parse xml input_r and store data in data_r . | |
std::ostream & | operator<< (std::ostream &str, const ParseDef::Impl &obj) |
std::ostream & | operator<< (std::ostream &str, ParseDef::Mode obj) |
std::ostream & | operator<< (std::ostream &str, const ParseDef &obj) |
std::string | escape (const std::string &in_r) |
Escape xml special charaters (& -> & ; from IoBind library). | |
std::string | unescape (const std::string &in_r) |
Unescape xml special charaters (& -> & ; from IoBind library). | |
std::ostream & | operator<< (std::ostream &str, const XmlString &obj) |
typedef xmlTextReaderMode zypp::xml::ReadState |
Definition at line 30 of file libxmlfwd.h.
typedef xmlReaderTypes zypp::xml::NodeType |
Definition at line 34 of file libxmlfwd.h.
std::ostream& zypp::xml::operator<< | ( | std::ostream & | str, | |
const ReadState & | obj | |||
) |
std::ostream& zypp::xml::operator<< | ( | std::ostream & | str, | |
const NodeType & | obj | |||
) |
std::ostream& zypp::xml::operator<< | ( | std::ostream & | str, | |
const Node & | obj | |||
) | [related] |
void zypp::xml::rnParse | ( | const InputStream & | input_r, | |
_Data & | data_r | |||
) | [inline] |
Parse xml input_r
and store data in data_r
.
_Data
must be defaultconstructible and assignable.
_Data::RootNode
must be a xml::ParseDef constructible from _Data&
.
ParseDefException | on parse errors. |
<test> <setup attr="13">value</setup> <list name="A"/> <list name="b"/> </test>
You need something like this:
struct XmlData { // data unsigned attr; std::string value; std:list<std::string> names; public: // Convenience parsing to *this. void parse( const Pathname & path_r ) { xml::rnParse( path_r, *this ); } public: // Parser description struct RootNode : public xml::ParseDef { RootNode( XmlData & data ) : ParseDef( "test", MANDTAORY ) , _data( data ) { (*this) ("setup", MANDTAORY, xml::parseDefAssign( data.value ) ( "attr", data.attr ) ) // Each individual list entry is collected locally // and appended to the list after the node is done. ("list", MULTIPLE_OPTIONAL, xml::parseDefAssign( "name", _cname ) >> bind( &RootNode::cdone, this, _1 ) ) ; } void cdone( const xml::Node & node_r ) { _data.push_back( _cname ); _cname.clear(); // prepare for next } private: XmlData & _data; // stored just because notification callbacks are used. std::string _cname; }; }; XmlData xmlData; xmlData.parse( "/tmp/mytest.xml" );
std::ostream& zypp::xml::operator<< | ( | std::ostream & | str, | |
const ParseDef::Impl & | obj | |||
) |
Definition at line 348 of file ParseDef.cc.
References zypp::xml::ParseDef::Impl::_mode, zypp::xml::ParseDef::Impl::_name, and zypp::xml::ParseDef::Impl::_visited.
std::ostream& zypp::xml::operator<< | ( | std::ostream & | str, | |
ParseDef::Mode | obj | |||
) | [related] |
std::ostream& zypp::xml::operator<< | ( | std::ostream & | str, | |
const ParseDef & | obj | |||
) |
std::string zypp::xml::escape | ( | const std::string & | in_r | ) | [inline] |
Escape xml special charaters (& -> &
; from IoBind library).
Definition at line 26 of file XmlEscape.h.
std::string zypp::xml::unescape | ( | const std::string & | in_r | ) | [inline] |
Unescape xml special charaters (& -> &
; from IoBind library).
Definition at line 30 of file XmlEscape.h.
std::ostream& zypp::xml::operator<< | ( | std::ostream & | str, | |
const XmlString & | obj | |||
) | [related] |