Re: [xml] please help me



On Tue, Feb 10, 2004 at 05:04:40PM +0000, shen peng wrote:
Hello,
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,
<timetable>
      <train number = "su1">
              <train_type> x2000 </train_type>
              <train_route>direct_train</train_route>
              <departure_station>stockholm</departure_station>
              <departure_hour> 5</departure_hour>
                              ....
      </train>
      <train number = "sub2">
                              ...
      </train>
      <train number = "sub3">
                              ...
      </train>
</timetable>

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 
structure.
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
      xmlFree(key);
}

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 https://rhn.redhat.com/
veillard redhat com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/



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