[xml] Reading text nodes..



Hi I have the following xml doc:

<ejemplo>al principio...<item/><otroItem/>al final..<masItem/>mas
texto</ejemplo>

I am parsing it using the following code:

#include <iostream>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>

int
main (int argc, char **argv)
{
    xmlDocPtr documento = 0;

    documento = xmlParseFile (argv [1]);

    if (documento == 0)
    {
        std::cerr << "error parseando documento..." << std::endl;
        return 1;
    }

    xmlNodePtr nodo = xmlDocGetRootElement(documento);

    // imprimimos el nombre del documento

    if ( nodo == 0)
    {
        std::cerr <<  "el documento no tiene nodos!!" << std::endl;
        return 1;
    }

    

    std::cerr << "elemento raiz: " <<  nodo->name << std::endl;

    // y los hijos

    nodo = nodo->xmlChildrenNode;
    xmlChar *key;
    
        while (nodo != 0)
    {
        std::cerr << "hijo: " << nodo->name
                  << " en linea: " << nodo->line
                  << " tipo: " << nodo->type
                  << std::endl;

        if (!xmlStrcmp (nodo->name, reinterpret_cast<const xmlChar
*>("text")))
            std::cerr <<
"---------------------------------------------------->"
                      << xmlNodeListGetString (documento, nodo, 1)
                      << std::endl;
        
                nodo = nodo->next;
        }
    
    return 0;
}


The result is the following:

$ ./probandoParseado ejemplo.xml elemento raiz: ejemplo
hijo: text en linea: 0 tipo: 3
---------------------------------------------------->al principio...al
final..mas texto
hijo: item en linea: 1 tipo: 1
hijo: otroItem en linea: 1 tipo: 1
hijo: text en linea: 0 tipo: 3
---------------------------------------------------->al final..mas texto
hijo: masItem en linea: 1 tipo: 1
hijo: text en linea: 0 tipo: 3
---------------------------------------------------->mas texto


so the library is generating text nodes containing "al principio...al
final... mas texto" "al final...mas texto" and "mas texto"..

I wonder why.. shoudn't it be "al principio" "al final" and "mas texto"
?? (that is what I need).


Best Regards

Roberto




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]