HepMC3 event record library
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes
XMLTag Struct Reference

#include <LHEF.h>

+ Collaboration diagram for XMLTag:

Public Types

typedef std::string::size_type pos_t
 
typedef std::map< std::string,
std::string > 
AttributeMap
 

Public Member Functions

 XMLTag ()
 
 ~XMLTag ()
 
bool getattr (std::string n, double &v) const
 
bool getattr (std::string n, bool &v) const
 
bool getattr (std::string n, long &v) const
 
bool getattr (std::string n, int &v) const
 
bool getattr (std::string n, std::string &v) const
 
void print (std::ostream &os) const
 

Static Public Member Functions

static std::vector< XMLTag * > findXMLTags (std::string str, std::string *leftover=0)
 
static void deleteAll (std::vector< XMLTag * > &tags)
 

Data Fields

std::string name
 
AttributeMap attr
 
std::vector< XMLTag * > tags
 
std::string contents
 

Static Public Attributes

static const pos_t end = std::string::npos
 

Detailed Description

The XMLTag struct is used to represent all information within an XML tag. It contains the attributes as a map, any sub-tags as a vector of pointers to other XMLTag objects, and any other information as a single string.

Definition at line 87 of file LHEF.h.

Member Typedef Documentation

typedef std::map<std::string,std::string> AttributeMap

Convenient typdef.

Definition at line 97 of file LHEF.h.

typedef std::string::size_type pos_t

Convenient typdef.

Definition at line 92 of file LHEF.h.

Constructor & Destructor Documentation

XMLTag ( )
inline

Default constructor.

Definition at line 107 of file LHEF.h.

~XMLTag ( )
inline

The destructor also destroys any sub-tags.

Definition at line 112 of file LHEF.h.

References XMLTag::tags.

Member Function Documentation

static void deleteAll ( std::vector< XMLTag * > &  tags)
inlinestatic

Delete all tags in a vector.

Definition at line 293 of file LHEF.h.

static std::vector<XMLTag*> findXMLTags ( std::string  str,
std::string *  leftover = 0 
)
inlinestatic

Scan the given string and return all XML tags found as a vector of pointers to XMLTag objects. Text which does not belong to any tag is stored in tags without name and in the string pointed to by leftover (if not null).

Examples:
LHEF_example_cat.cc.

Definition at line 198 of file LHEF.h.

References XMLTag::end, XMLTag::tags, and XMLTag::XMLTag().

bool getattr ( std::string  n,
double &  v 
) const
inline

Find an attribute named n and set the double variable v to the corresponding value.

Returns
false if no attribute was found.

Definition at line 140 of file LHEF.h.

References XMLTag::attr.

bool getattr ( std::string  n,
bool &  v 
) const
inline

Find an attribute named n and set the bool variable v to true if the corresponding value is "yes".

Returns
false if no attribute was found.

Definition at line 152 of file LHEF.h.

References XMLTag::attr.

bool getattr ( std::string  n,
long &  v 
) const
inline

Find an attribute named n and set the long variable v to the corresponding value.

Returns
false if no attribute was found.

Definition at line 163 of file LHEF.h.

References XMLTag::attr.

bool getattr ( std::string  n,
int &  v 
) const
inline

Find an attribute named n and set the long variable v to the corresponding value.

Returns
false if no attribute was found.

Definition at line 174 of file LHEF.h.

References XMLTag::attr.

bool getattr ( std::string  n,
std::string &  v 
) const
inline

Find an attribute named n and set the string variable v to the corresponding value.

Returns
false if no attribute was found.

Definition at line 185 of file LHEF.h.

References XMLTag::attr.

void print ( std::ostream &  os) const
inline

Print out this tag to a stream.

Definition at line 302 of file LHEF.h.

References XMLTag::attr, XMLTag::contents, XMLTag::name, LHEF::oattr(), and XMLTag::tags.

Field Documentation

The attributes of this tag.

Definition at line 124 of file LHEF.h.

std::string contents

The contents of this tag.

Definition at line 134 of file LHEF.h.

const pos_t end = std::string::npos
static

Convenient alias for npos.

Definition at line 102 of file LHEF.h.

std::string name

The name of this tag.

Definition at line 119 of file LHEF.h.

std::vector<XMLTag*> tags

A vector of sub-tags.

Definition at line 129 of file LHEF.h.


The documentation for this struct was generated from the following file: