Hola gente, les escribo para preguntarles algo q se q es una pavada pero q me esta volviendo loco.
Estoy haciendo una clase "CXMLParser" y me surgio una duda. Antes q nada, les cuento q estoy usando la libxml2 bajo GNU/LINUX. Personalmente tengo la distribucion Mandrake 9.2, pero creo q no va al caso todo esto.
Les hago una pequeña introduccion:
Primero les digo q esto en si no es exactamente lo q estoy haciendo (porque seria demasiado largo de explicar y no va al problema en cuestion) pero la adaptacion q estoy pensando sirve perfectamente y creo q queda bastante clara.
Tengo una clase "CInfoDeArchivos", la cual tiene como atributos al nombre del archivo, la fecha de modificacion y al tamaño. Todos estos atributos son de tipo std::string . Tengo obviamente un "seter" para cada atributo.
La clase "CXMLParser" tiene como atributo a un objeto de la clase"CInfoDeArchivos" y por supuesto al "seter" correspondiente.
El problema viene en esta parte del XML q tengo: 
.........
<ListaDeArchivos>
  <Archivo nombre='introduccion.txt' tamanio='5Kb' fechamodif='05042004'>
  <Archivo nombre='hola.txt' tamanio='50Kb' fechamodif='23022004'>
  <Archivo nombre='nada.txt' tamanio='37Kb' fechamodif='05092002'>
<ListaDeArchivos>
...........
Recorro perfectamente hasta q entro en ListaDeAcrhivos, entro perfectamente y hago algo asi:
xmlChar* ContenidoNombre;
xmlChar* ContenidoTamanio;
xmlChar* ContenidoFecha;
xmlAttr* Atributo;
CInfoDeArchivos Info;
Atributo = (xmlAttr *)NodoActual->properties;
while (Atributo != NULL)
{
    if (!xmlStrcmp(Atributo->name, (const xmlChar *) "NOMBRE"))
    {
      ContenidoNombre = xmlGetProp(NodoActual, Atributo->name);
      Info.setNombre(ContenidoNombre);
      xmlFree(ContenidoNombre);
    }
    if (!xmlStrcmp(Atributo->name, (const xmlChar *) "TAMANIO"))
    {
      ContenidoTamanio = xmlGetProp(NodoActual, Atributo->name);
      Info.setTamanio(ContenidoTamanio);
      xmlFree(ContenidoTamanio);
    }
    if (!xmlStrcmp(Atributo->name, (const xmlChar *) "FECHAMODIF"))
    {
      ContenidoFecha = xmlGetProp(NodoActual, Atributo->name);
      Info.setFecha(ContenidoFecha);
      xmlFree(ContenidoFecha);
    }    
    Atributo = Atributo->next;
  }
  this->getComando().setArchivo(Info);
Y lo q hace la maldita aplicacion es cargar solo de una cosa a la vez. esto entiendo mas o menos porque lo hace, porque recorre los tres atributos del tag <Archivo> pero yo no cargo el "Info" hasta no salir del ultimo scope. 
Como se ve, lo mio no tiene mucho q ver con el XML, pero quizas el ejemplo sirva de algo. Lo q me esta pasando es q no puedo setear un atributo de un objeto bien. No es q el seter este mal hecho ni nada de eso, es como q esta haciendo algo mal y no me doy cuenta.
Aclaro q los xmlFree() deben ir asi porque si no pincha todo.
Les mando salu2 y aquella persona q me pueda dar una mano, se los agradecere