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

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]