XMLParser_T Class Reference

Surclasse pour la gestion des fichiers XML (basé sur la librarie TinyXML). More...

#include <XMLparser_T.h>

Inheritance diagram for XMLParser_T:

Scene_XMLparser Stargen_XMLparser List of all members.

Public Member Functions

 XMLParser_T (String XMLfile)
 Constructor.
 ~XMLParser_T ()
 Destructor.
void parseFile (String XMLfile)
 Parse le fichier XML.
bool isPresent ()
 Indique si un document a été parsé.
void addXmlData (String Data, String Data_ID, String RefNodeName="interface")
 Ajoute des données XML au document <interface>.
void saveToFile (String filename, String rootnode="")
 Enregistre le contenu du document XML dans un fichier, en entier, ou à partir du Node indiqué.
bool gotoRootElement (String RootName)
 On se positionne sur un élément <RootName> (de premier niveau = racine).
bool gotoElement (String NodeName, int id)
 On se positionne sur un élément <NodeName id="id" ... >.
bool gotoElement (String RootName, String NodeName)
 On se positionne sur un élément <NodeName> (de second niveau).
bool gotoSubElement (String NodeName, unsigned int index)
 On se positionne sur le Nieme sous-élément <NodeName> en commençant par l'index 0.
bool gotoSubElement (String ChildNodeName, String GrandChildNodeName)
 On se positionne sur un sous-sous-élément du node courant, en précisant le nom du Child direct et du Child suivant.
bool gotoSubNamedElement (String NodeName, String AttribName)
 On se positionne sur un sous-élément <NodeName> possedant l'attribut "name" demandé.
bool gotoElementPath (String NodePath)
 On se positionne sur un élément dont on donne le chemin.
void setParentNode ()
 Le noeud courant devient le Parent. Ce qui permet de refaire des appels a getSubElement().
void returnToParentNode ()
bool gotoParentElement ()
 On se positionne sur le parent du Node Courant.
String getElementName ()
 Renvoie le Nom du Node Courant.
void removeAllSubElements ()
 On supprime tous les Childs du Node Courant.
int getIntAttribute (String Attribut)
 Renvoie l'attribut du Node Courant (de type Integer).
Vector3 getVectorAttribute (String Attribut)
 Renvoie l'attribut demandé de l'élément courant (de type Vector3).
Real getRealAttribute (String Attribut, Real DefaultValue=0)
 Renvoie l'attribut du Node Courant (de type Real).
Real getRealAttribute (String childnode, String Attribut, Real DefaultValue=0)
 Renvoie l'attribut demandé du node child.
bool getBooleanAttribute (String Attribut, bool DefaultValue=false)
 Renvoie l'attribut du Node Courant (de type Boolean).
bool getBooleanAttribute (String childnode, String Attribut, bool DefaultValue=false)
 Renvoie l'attribut demandé du node child.
String getStringAttribute (String Attribut)
 Renvoie l'attribut du Node Courant (de type String).
String getTextContent ()
 Renvoie le "Contenu" du node courant.

Protected Member Functions

bool hasID (void *elem, int id)
 Cette fonction indique si le node concerné a un attribut "id" avec la valeur désirée.
bool iterateChild (void *xmlnode, String NodeName, int id)
 Cette fonction parcourt une arborescence à la recherche de d'un node particulier.

Protected Attributes

void * mDocument
void * mCurrentNode
void * mParentNode

Detailed Description

Surclasse pour la gestion des fichiers XML (basé sur la librarie TinyXML).

On se déplace dans le document aec les fonction gotoElement. On se place sur n'importe quel Element du document. On peut alors lire ses attributs. Au besoin on peut acceder à ses fils (gotoSubElement), et revenir à l'Element (gotoParentElement).


Constructor & Destructor Documentation

XMLParser_T::XMLParser_T String  XMLfile  ) 
 

Constructor.

XMLParser_T::~XMLParser_T  ) 
 

Destructor.


Member Function Documentation

void XMLParser_T::addXmlData String  Data,
String  Data_ID,
String  RefNodeName = "interface"
 

Ajoute des données XML au document <interface>.

Parameters:
Data Les données à ajouter au document. Data Example: "<status><item call='repair(wpOUT_nav,20,wires)' text='five minutes' >Navigation Door </item></status>"
Data_ID Le nom du Node racine à transferer. Ex: "status";
RefNodeName Le nom du Node du document principal auquel seront rattachées les données.

bool XMLParser_T::getBooleanAttribute String  childnode,
String  Attribut,
bool  DefaultValue = false
 

Renvoie l'attribut demandé du node child.

Parameters:
childnode Le nom du node fils du node courant.
Attribut Le nom de l'attribut demandé.
DefaultValue La valeur à retourner si cet attribut n'existe pas.
Returns:
La valeur de l'attribut (boolean).

bool XMLParser_T::getBooleanAttribute String  Attribut,
bool  DefaultValue = false
 

Renvoie l'attribut du Node Courant (de type Boolean).

Parameters:
Attribut Le nom de l'attribut demandé.
DefaultValue La valeur à retourner si cet attribut n'existe pas.
Returns:
La valeur de l'attribut (boolean).
Renvoie "DefaultValue" si l'attribut demandé n'existe pas, ou a une valeur incorrecte Valeurs acceptées (true | on | yes) ou (false | off | no)

On genère une exception en cas de probleme.

String XMLParser_T::getElementName  ) 
 

Renvoie le Nom du Node Courant.

On genère une exception en cas de probleme.

int XMLParser_T::getIntAttribute String  Attribut  ) 
 

Renvoie l'attribut du Node Courant (de type Integer).

Parameters:
Attribut Nom de l'attribut à lire.
Returns:
Renvoie la valeur lue, ou -1 si l'attribut n'existe pas.
On genère une exception en cas de probleme.

Real XMLParser_T::getRealAttribute String  childnode,
String  Attribut,
Real  DefaultValue = 0
 

Renvoie l'attribut demandé du node child.

Parameters:
childnode Le nom du node fils du node courant.
Attribut Le nom de l'attribut demandé.
DefaultValue La valeur à retourner si cet attribut n'existe pas.
Returns:
La valeur de l'attribut (Real).

Real XMLParser_T::getRealAttribute String  Attribut,
Real  DefaultValue = 0
 

Renvoie l'attribut du Node Courant (de type Real).

Parameters:
Attribut Le nom de l'attribut demandé.
DefaultValue La valeur à retourner si cet attribut n'existe pas.
Returns:
La valeur de l'attribut (Real).
On genère une exception en cas de probleme.

On renvoie la valeur par defaut si l'attribut n'existe pas.

String XMLParser_T::getStringAttribute String  Attribut  ) 
 

Renvoie l'attribut du Node Courant (de type String).

On genère une exception en cas de probleme.

On renvoie une chaine vide si l'attribut n'existe pas.

String XMLParser_T::getTextContent  ) 
 

Renvoie le "Contenu" du node courant.

On genère une exception en cas de probleme.

On renvoie une chaine vide si le champ texte n'existe pas.

Vector3 XMLParser_T::getVectorAttribute String  Attribut  ) 
 

Renvoie l'attribut demandé de l'élément courant (de type Vector3).

Parameters:
Attribut Nom de l'attribut XML à lire.
Returns:
Renvoie le vecteur lu, ou un vecteur NULL si l'attribut n'existe pas.
On genère une exception en cas de probleme.

bool XMLParser_T::gotoElement String  RootName,
String  NodeName
 

On se positionne sur un élément <NodeName> (de second niveau).

Parameters:
RootName Nom du Racine que l'on va commencer à parcourir.
NodeName Nom du Node XML qui va devenir le node courant.

bool XMLParser_T::gotoElement String  NodeName,
int  id
 

On se positionne sur un élément <NodeName id="id" ... >.

Parameters:
NodeName Nom du Node XML qui va devenir le node courant.
id Occurence de ce node, à utiliser dans le cas où il y plusieurs nodes avec ce même nom. Commence à 0.

bool XMLParser_T::gotoElementPath String  NodePath  ) 
 

On se positionne sur un élément dont on donne le chemin.

Parameters:
NodePath Liste de Nodes, séparés par des slashs "/"
Returns:
Renvoie TRUE si l'élément demandé a été trouvé.

bool XMLParser_T::gotoParentElement  ) 
 

On se positionne sur le parent du Node Courant.

Returns:
Renvoie TRUE si on est bien revenu au parent, ou FALSE si l'élément courant n'a pas de Parent
On genère une exception en cas de probleme.

bool XMLParser_T::gotoRootElement String  RootName  ) 
 

On se positionne sur un élément <RootName> (de premier niveau = racine).

Parameters:
RootName Nom du Node XML qui va devenir le node courant.
Returns:
FALSE si l'element n'a pas été trouvé.

bool XMLParser_T::gotoSubElement String  ChildNodeName,
String  GrandChildNodeName
 

On se positionne sur un sous-sous-élément du node courant, en précisant le nom du Child direct et du Child suivant.

bool XMLParser_T::gotoSubElement String  NodeName,
unsigned int  index
 

On se positionne sur le Nieme sous-élément <NodeName> en commençant par l'index 0.

bool XMLParser_T::gotoSubNamedElement String  NodeName,
String  AttribName
 

On se positionne sur un sous-élément <NodeName> possedant l'attribut "name" demandé.

bool XMLParser_T::hasID void *  elem,
int  id
[protected]
 

Cette fonction indique si le node concerné a un attribut "id" avec la valeur désirée.

Parameters:
elem Un element XML
id La valeur de l'ID recherché
Returns:
La fonction renvoie TRUE si l'élément a bien l'attribut id="id".

bool XMLParser_T::isPresent  ) 
 

Indique si un document a été parsé.

On renvoie FALSE si mDocument est NULL;

bool XMLParser_T::iterateChild void *  xmlnode,
String  NodeName,
int  id
[protected]
 

Cette fonction parcourt une arborescence à la recherche de d'un node particulier.

INCOMPLETE ! ! ! ! ! On parcourt les enfants, les enfants des enfants, etc.

Parameters:
node Un node XML, début de l'arbre de recherche.
NodeName Le nom du node recherché.
id La valeur de l'attribut ID recherché.
Returns:
La fonction renvoie TRUE si l'élément a bien l'attribut id="id".
TODO

TODO : gérer la sortie

void XMLParser_T::parseFile String  XMLfile  ) 
 

Parse le fichier XML.

Parameters:
XMLfile Le nom du fichier XML à parser, avec son chemin.

void XMLParser_T::removeAllSubElements  ) 
 

On supprime tous les Childs du Node Courant.

void XMLParser_T::returnToParentNode  ) 
 

void XMLParser_T::saveToFile String  filename,
String  rootnode = ""
 

Enregistre le contenu du document XML dans un fichier, en entier, ou à partir du Node indiqué.

void XMLParser_T::setParentNode  ) 
 

Le noeud courant devient le Parent. Ce qui permet de refaire des appels a getSubElement().


Member Data Documentation

void* XMLParser_T::mCurrentNode [protected]
 

void* XMLParser_T::mDocument [protected]
 

void* XMLParser_T::mParentNode [protected]
 


The documentation for this class was generated from the following files:
Generated on Mon Mar 27 21:33:16 2006 for Long Forgotten Earth by  doxygen 1.4.6-NO