Yate: XPath Class Reference

Yate

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
XPath Class Reference

XML Path holder. More...

`#include <yatexml.h>`

Inheritance diagram for XPath:

## Public Types
enum | Flags { LateParse = 0x0001 , StrictParse = 0x0002 , IgnoreEmptyResult = 0x0004 , NoXmlNameCheck = 0x0008 , FInternal = 0xff00 , FAbsolute = 0x0100 , FCopying = 0x0200 }
enum | Find { FindXml = 0x01 , FindText = 0x02 , FindAttr = 0x04 , FindAny = FindXml | FindText | FindAttr }
enum | Status { NoError = 0 , EEmptyItem , ESyntax , ERange , ESemantic , EEmptyResult , NotParsed }
Public Types inherited from String
enum | Align { Left = 0 , Center , Right }

## Public Member Functions
| XPath (const char *value=0, unsigned int flags=0)
| XPath (const XPath &other)
virtual | ~XPath ()
bool | absolute () const
unsigned int | status () const
unsigned int | errorItem () const
const String & | error () const
String & | describeError (String &buf) const
unsigned int | parse ()
const GenObject * | find (const XmlElement &xml, unsigned int what, ObjList *list=0) const
XmlElement * | findXml (const XmlElement &xml, ObjList *list=0) const
const String * | findText (const XmlElement &xml, ObjList *list=0) const
String & | dump (String &buf, bool escape=true, const char *itemSep="\r\n", bool sepFirst=true) const
void | dump (ObjList &lst, bool escape=true) const
XPath & | operator= (const XPath &other)
Public Member Functions inherited from String
| String ()
| String (const char *value, int len=-1)
| String (char value, unsigned int repeat=1)
| String (int32_t value)
| String (uint32_t value)
| String (int64_t value)
| String (uint64_t value)
| String (bool value)
| String (double value)
| String (const String &value)
| String (const String *value)
virtual | ~String ()
virtual void * | getObject (const String &name) const
const char * | c_str () const
const char * | safe () const
const char * | safe (const char *defStr) const
unsigned int | length () const
bool | null () const
int | lenUtf8 (uint32_t maxChar=0x10ffff, bool overlong=false) const
int | fixUtf8 (const char *replace=0, uint32_t maxChar=0x10ffff, bool overlong=false)
unsigned int | encodeFlags (const TokenDict *tokens) const
uint64_t | encodeFlags (const TokenDict64 *tokens) const
String & | decodeFlags (unsigned int flags, const TokenDict *tokens, bool unknownflag=true)
String & | decodeFlags (uint64_t flags, const TokenDict64 *tokens, bool unknownflag=true)
bool | checkBOM () const
bool | stripBOM ()
unsigned int | hash () const
void | clear ()
char | at (int index) const
String | substr (int offs, int len=-1) const
String & | trimBlanks ()
String & | trimSpaces ()
virtual const String & | toString () const
int | toInteger (int defvalue=0, int base=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
int | toInteger (const TokenDict *tokens, int defvalue=0, int base=0) const
int | toInteger (const TokenDictStr *tokens, int defvalue=0, int base=0) const
long int | toLong (long int defvalue=0, int base=0, long int minvalue=LONG_MIN, long int maxvalue=LONG_MAX, bool clamp=true) const
int64_t | toInt64 (int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
int64_t | toInt64Dict (const TokenDict64 *tokens, int64_t defvalue=0, int base=0) const
int64_t | toInt64Dict (const TokenDictStr64 *tokens, int64_t defvalue=0, int base=0) const
uint64_t | toUInt64 (uint64_t defvalue=0, int base=0, uint64_t minvalue=0, uint64_t maxvalue=ULLONG_MAX, bool clamp=true) const
double | toDouble (double defvalue=0.0) const
bool | toBoolean (bool defvalue=false) const
bool | isBoolean () const
String & | toUpper ()
String & | toLower ()
char | operator[] (signed int index) const
char | operator[] (unsigned int index) const
| operator const char * () const
String & | assign (const char *value, int len=-1)
String & | assign (char value, unsigned int repeat=1)
String & | hexify (const void *data, unsigned int len, char sep=0, bool upCase=false)
String & | operator= (const String &value)
String & | operator= (const String *value)
String & | operator= (const char *value)
String & | operator= (char value)
String & | operator= (int32_t value)
String & | operator= (uint32_t value)
String & | operator= (int64_t value)
String & | operator= (uint64_t value)
String & | operator= (bool value)
String & | operator= (double value)
String & | operator+= (const char *value)
String & | operator+= (char value)
String & | operator+= (int32_t value)
String & | operator+= (uint32_t value)
String & | operator+= (int64_t value)
String & | operator+= (uint64_t value)
String & | operator+= (bool value)
String & | operator+= (double value)
bool | operator== (const char *value) const
bool | operator!= (const char *value) const
bool | operator== (const String &value) const
bool | operator!= (const String &value) const
bool | operator&= (const char *value) const
bool | operator|= (const char *value) const
String & | operator<< (const char *value)
String & | operator<< (char value)
String & | operator<< (int32_t value)
String & | operator<< (uint32_t value)
String & | operator<< (int64_t value)
String & | operator<< (uint64_t value)
String & | operator<< (bool value)
String & | operator<< (double value)
String & | operator>> (const char *skip)
String & | operator>> (char &store)
String & | operator>> (UChar &store)
String & | operator>> (int &store)
String & | operator>> (unsigned int &store)
String & | operator>> (bool &store)
String & | append (const char *value, int len)
String & | append (const char *value, const char *separator=0, bool force=false)
String & | append (const ObjList *list, const char *separator=0, bool force=false)
String & | append (const ObjList &list, const char *separator=0, bool force=false)
String & | append (char value, unsigned int len=1)
String & | append (double value, unsigned int decimals=3)
String & | insert (unsigned int pos, const char *value, int len=-1)
String & | insert (unsigned int pos, char value, unsigned int len=1)
String & | printf (const char *format,...)
String & | printf (unsigned int length, const char *format,...)
String & | printfAppend (const char *format,...)
String & | printfAppend (unsigned int length, const char *format,...)
String & | appendFixed (unsigned int fixedLength, const char *str, unsigned int len=-1, char fill=' ', int align=Left)
String & | appendFixed (unsigned int fixedLength, const String &str, char fill=' ', int align=Left)
int | find (char what, unsigned int offs=0) const
int | find (const char *what, unsigned int offs=0) const
int | rfind (char what) const
int | rfind (const char *what) const
bool | startsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
bool | endsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
bool | startSkip (const char *what, bool wordBreak=true, bool caseInsensitive=false)
String & | replaceChars (const char *what, const char *repl, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
String & | removeChars (const char *what, int wLen=-1, bool *chg=0)
String & | extractTo (const char *sep, String &store)
String & | extractTo (const char *sep, bool &store)
String & | extractTo (const char *sep, int &store, int base=0)
String & | extractTo (const char *sep, int &store, const TokenDict *tokens, int base=0)
String & | extractTo (const char *sep, double &store)
virtual bool | matches (const String &value) const
bool | matches (const Regexp &rexp)
int | matchOffset (int index=0) const
int | matchLength (int index=0) const
String | matchString (int index=0) const
String | replaceMatches (const String &templ) const
int | matchCount () const
ObjList * | split (ObjList &list, char separator, bool emptyOK=true) const
ObjList * | split (ObjList &list, const Regexp &reg, bool emptyOK=true) const
ObjList * | split (char separator, bool emptyOK=true) const
ObjList * | split (const Regexp &reg, bool emptyOK=true) const
String | msgEscape (char extraEsc=0) const
String | msgUnescape (int *errptr=0, char extraEsc=0) const
String | sqlEscape (char extraEsc=0) const
String & | uriEscapeTo (String &buf, char extraEsc=0, const char *noEsc=0) const
String | uriEscape (char extraEsc=0, const char *noEsc=0) const
String & | uriUnescapeTo (String &buf, bool setPartial=false, int *errptr=0) const
String & | uriUnescapeStr (bool setPartial=false, int *errptr=0)
String | uriUnescape (int *errptr=0, bool setPartial=true) const
Public Member Functions inherited from GenObject
| GenObject ()
virtual | ~GenObject ()
virtual bool | alive () const
virtual void | destruct ()
virtual const String & | traceId () const
NamedCounter * | getObjCounter () const
NamedCounter * | setObjCounter (NamedCounter *counter)

## Static Public Member Functions
static const String * | anyValue (const GenObject *gen)
static String & | escape (String &buf, const String &str, char quot='"', bool literal = true)
static unsigned int | maxStepPredicates ()
static const TokenDict * | dictErrors ()
Static Public Member Functions inherited from String
static const String & | empty ()
static const char * | boolText (bool value)
static int | lenUtf8 (const char *value, uint32_t maxChar=0x10ffff, bool overlong=false)
static bool | checkBOM (const char *str)
static bool | stripBOM (const char *&str)
static bool | stripBOM (char *&str)
static unsigned int | hash (const char *value, unsigned int h=0)
static String | msgEscape (const char *str, char extraEsc=0)
static String | msgUnescape (const char *str, int *errptr=0, char extraEsc=0)
static String | sqlEscape (const char *str, char extraEsc=0)
static String & | uriEscapeTo (String &buf, const char *str, char extraEsc=0, const char *noEsc=0)
static String & | uriEscapeTo (String &buf, const char *str, const char *extraEsc, const char *noEsc=0)
static String | uriEscape (const char *str, char extraEsc=0, const char *noEsc=0)
static String | uriEscape (const char *str, const char *extraEsc, const char *noEsc=0)
static String & | uriUnescapeTo (String &buf, const char *str, bool setPartial=false, int *errptr=0)
static String | uriUnescape (const char *str, int *errptr=0, bool setPartial=true)
static const String * | atom (const String *&str, const char *val)
static unsigned int | c_starts_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int | c_ends_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int | c_skip (const char *&str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
static unsigned int | c_skip_chars (const char *&str, const char *what, int len=-1, bool skipFound=true)
static char * | c_replace_chars (const char *str, const char *what, const char *repl=0, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
Static Public Member Functions inherited from GenObject
static void * | getObject (const String &name, const GenObject *obj)
static bool | getObjCounting ()
static void | setObjCounting (bool enable)
static NamedCounter * | getObjCounter (const String &name, bool create=true)
static ObjList & | getObjCounters ()

## Protected Member Functions
virtual void | changed ()
void | parsePath ()
void | reset ()

## Detailed Description

XML Path holder.

This class holds an XML Path

## Member Enumeration Documentation

## ◆ Find

enum Find

Find result type

## ◆ Flags

enum Flags

Path flags

## ◆ Status

enum Status

Error (status) codes

## Constructor & Destructor Documentation

## ◆ XPath() [1/2]

XPath | ( | const char * | value = 0,
|  | unsigned int | flags = 0 )

Constructor

Parameters

  value | Initial value
  flags | Path flags

Referenced by operator=(), reset(), and XPath().

## ◆ XPath() [2/2]

XPath | ( | const XPath & | other | ) |

Copy constructor

Parameters

  other | Object to copy

References XPath().

## ◆ ~XPath()

virtual ~XPath | ( |  | ) |
| virtual

Destructor

## Member Function Documentation

## ◆ absolute()

bool absolute | ( |  | ) | const
| inline

Check if the parth is absolute

Returns
  True if the path is absolute, false otherwise

Referenced by find(), and reset().

## ◆ anyValue()

const String * anyValue | ( | const GenObject * | gen | ) |
| inlinestatic

Resolve a result returned when searching for 'any' value

Parameters

  gen | Result to handle

Returns
  String pointer (XML text, attribute value or string), NULL if given parameter is NULL

References GenObject::GenObject(), XmlElement::getText(), String::String(), and GenObject::toString().

## ◆ changed()

virtual void changed | ( |  | ) |
| protectedvirtual

Called whenever the String value changed. Reset data, parse the path

Reimplemented from String.

## ◆ describeError()

String & describeError | ( | String & | buf | ) | const
| inline

Describe the error

Parameters

  buf | Destination buffer

Returns
  Destination buffer reference

References String::c_str(), dictErrors(), error(), status(), and String::String().

## ◆ dictErrors()

const TokenDict * dictErrors | ( |  | ) |
| static

Retrieve the dictionary containing the error strings

Returns
  Valid dictionary pointer

Referenced by describeError().

## ◆ dump() [1/2]

void dump | ( | ObjList & | lst,
|  | bool | escape = true ) const

Dump path items string to ObjList

Parameters

  lst | Destination list
  escape | Escape strings

References escape().

## ◆ dump() [2/2]

String & dump | ( | String & | buf,
|  | bool | escape = true,
|  | const char * | itemSep = "\r\n",
|  | bool | sepFirst = true ) const

Dump path items to string Build a canonical (spaces stripped ...) string: dump(buf,true,"/",absolute())

Parameters

  buf | Destination buffer
  escape | Escape strings
  itemSep | Item separator
  sepFirst | Add item separator before first item

Returns
  Given buffer reference

References escape(), and String::String().

## ◆ error()

const String & error | ( |  | ) | const
| inline

Retrieve the additional path parse error string

Returns
  Parse error string (may be empty)

References String::String().

Referenced by describeError(), and reset().

## ◆ errorItem()

unsigned int errorItem | ( |  | ) | const
| inline

Retrieve the failed to parse item index (0 based)

Returns
  0 based failed to parse item index

## ◆ escape()

String & escape | ( | String & | buf,
|  | const String & | str,
|  | char | quot = '"',
|  | bool | literal = true )
| static

Escape a string and add quoted value to buffer

Parameters

  buf | Destination buffer
  str | String to escape
  quot | Character to use for quoting. Use " if not " or '
  literal | Escape as literal (used in comparison operators) or XML string (used in function parameters)

Returns
  Destination buffer reference

References String::String().

Referenced by dump(), and dump().

## ◆ find()

const GenObject * find | ( | const XmlElement & | xml,
|  | unsigned int | what,
|  | ObjList * | list = 0 ) const
| inline

Find in xml using this path

Parameters

  xml | XML element to search in
  what | Flags indicating data to match
  list | Optional pointer to list to be filled with multiple elements matching the path Set it to NULL if single element is requested Filled objects may be XmlElement, String (XmlText contents) or NamedString (attribute) Objects set in it have autodelete disabled

Returns
  First found item, NULL if not found

References absolute(), find(), GenObject::GenObject(), and status().

Referenced by find(), findText(), and findXml().

## ◆ findText()

const String * findText | ( | const XmlElement & | xml,
|  | ObjList * | list = 0 ) const
| inline

Find XML text(s)

Parameters

  xml | XML element to search in
  list | Optional pointer to list to be filled with multiple texts matching the path Set it to NULL if single text is requested Objects set in it have autodelete disabled

Returns
  First found item, NULL if not found.

References find(), and String::String().

## ◆ findXml()

XmlElement * findXml | ( | const XmlElement & | xml,
|  | ObjList * | list = 0 ) const
| inline

Find XML element(s)

Parameters

  xml | XML element to search in
  list | Optional pointer to list to be filled with multiple elements matching the path Set it to NULL if single element is requested Objects set in it have autodelete disabled

Returns
  First found item, NULL if not found.

References find().

## ◆ maxStepPredicates()

unsigned int maxStepPredicates | ( |  | ) |
| static

Retrieve the number of maximum allowed predicates in a path step

Returns
  Maximum allowed predicates in a path step

## ◆ operator=()

XPath & operator= | ( | const XPath & | other | ) |
| inline

Assignment operator

Parameters

  other | Object to copy

References XPath().

## ◆ parse()

unsigned int parse | ( |  | ) |
| inline

Parse the path if not already done

Returns
  0 on success, failed code otherwise

References parsePath(), and status().

## ◆ parsePath()

void parsePath | ( |  | ) |
| protected

Parse the path

Referenced by parse().

## ◆ reset()

void reset | ( |  | ) |
| protected

Reset data

References absolute(), error(), GenObject::GenObject(), String::String(), and XPath().

## ◆ status()

unsigned int status | ( |  | ) | const
| inline

Retrieve the path parse error

Returns
  0 on success, failed code otherwise

Referenced by describeError(), find(), and parse().

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

- yatexml.h