Re: [xml] please help me

On Tue, Feb 10, 2004 at 05:04:40PM +0000, shen peng wrote:
I met one problem in reading string type of data from xml files.The problem 
is like this:
I need to read the data from xml files,
      <train number = "su1">
              <train_type> x2000 </train_type>
              <departure_hour> 5</departure_hour>
      <train number = "sub2">
      <train number = "sub3">

Using<libxml/parser.h>,there is one problem that really confuses me.
I use one structure to save the data read from xml. The data type of 'int' 
'double' can save correctly. For instance,
<departure_hour> 5</departure_hour>  can be correctly saved into the 
but the type of string always have some mistake.I can only read 
successfully the first strings data(<train number = "su1">),after that
all the strings data were wrong ,even when I check
if ((!xmlStrcmp(cur->name, (const xmlChar *)"train_route"))) {
      key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
      route1_list.back().train_route=(char*)key;//using deque
      printf("%s!!!!!\n",route1_list.back().train_route);//this is right 
      when reading
      printf("%s: %s\n",cur->name, key);//this is right

the reading was correct, but the finally when I print all the member of 
structure ,the string type of data is mess. I have check my program many 
times, and could not solve it. Would you do me a favour to help me?

  1/ memory allocation errors (key is freed !!!)
  2/ use xmlNodeGetContent() to retrieve the text of a node.

Daniel Veillard      | Red Hat Network
veillard redhat com  | libxml GNOME XML XSLT toolkit | Rpmfind RPM search engine

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