[xml] xmlNode is not found correctly



Hello, 

after days of trying, I have not got any valuable solution for the
following problem:
I try to retrieve the attribute id from a node, which breaks, because a
comparison between the node's name and a string fails (though the string
is correct and should be found by the function).
The xml file looks like this:

<?xml version="1.0"?>
<!DOCTYPE lingoteach SYSTEM
"/usr/local/src/marcus/devel/lingoteach/data/lingoteach.dtd">
<lingoteach>
  <meaning id="m0">
    <translation language="english">test</translation>
    <translation language="spanish">test</translation>
  </meaning>
</lingoteach>

The id-attribute from the <meaning> should be retrieved using this
function:

int
_data_meaning_get_max_word_id (xmlDocPtr lesson)
{
  xmlNodePtr node_ptr;
  char* tmp;

  lesson->parent = xmlDocGetRootElement (lesson);
  if (lesson->parent->name == NULL
      || strncmp (lesson->parent->name, "lingoteach", 1) != 0)
    {
      printf (_("Error: Rootnode does not seem to be correct, "
                "abort while getting the max. id...\n"));
      return NULL;
    }
  if ((node_ptr = lesson->parent->children) == NULL 
      || node_ptr->name == NULL
      || strncmp (node_ptr->name, "meaning", 7) != 0)
    {
      printf (_("Could not verify correct node name in your "
                "user specific lesson, aborting...\n"));
      return NULL;
    }
  node_ptr = xmlGetLastChild (lesson->parent);
  tmp = xmlGetProp (node_ptr, "id");
  tmp = strtok (tmp, "m");
  return atoi(tmp);
}

The function breaks while doing the strncmp on the node_ptr.
After taking a closer look at it, the name, which is given back by the
node, is "text", not "meaning".
What am I doing wrong?

Thanks in advance and regards
Marcus

-- 
Mr. Cole's Axiom:
The sum of the intelligence on the planet is a constant; the
population is growing.

Attachment: pgpkzkHk6HQgX.pgp
Description: PGP signature



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