解析xml
1 <?xml version="1.0" encoding="GBK"?> 2 3 <root> 4 5 <host station="1001" checked="true">afanihao.cn</host> 6 7 8 <client> 9 10 <name>shaofa</name> 11 12 <id>200501</id> 13 14 </client> 15 16 </root>
1 #include <stdio.h> 2 #include "../tinyxml/tinyxml.h" 3 4 int main() 5 { 6 // 解析xml 7 TiXmlDocument xml_doc; 8 if(!xml_doc.LoadFile("example02a.xml")) 9 { 10 return -1; 11 } 12 13 14 // 根节点 15 TiXmlElement* xml_root = xml_doc.RootElement(); 16 if (NULL == xml_root) 17 { 18 return -1; 19 } 20 21 22 if(1) 23 { 24 TiXmlElement* xml_host = xml_root->FirstChildElement("host");// 获取元素 25 const char* text = xml_host->GetText();//显示成文本 26 const char* aChecked = xml_host->Attribute("checked");//获取属性 27 const char* aStation = xml_host->Attribute("station"); 28 printf("text:%s, check:%s, station:%s\n", text, aChecked, aStation); 29 } 30 31 32 if(1) 33 { 34 TiXmlElement* xml_client = xml_root->FirstChildElement("client"); 35 36 TiXmlElement* xml_clientId = xml_client->FirstChildElement("id");//取得client的id 37 TiXmlElement* xml_clientName = xml_client->FirstChildElement("name");//取得client的name 38 39 40 } 41 42 43 return 0; 44 }
1 <?xml version="1.0" encoding="GBK"?> 2 3 <root> 4 5 6 <NoteList> 7 8 9 <Note> 10 11 <id>1</id> 12 13 <when>2016-1-23 10:00</when> 14 15 <who>Wang</who> 16 17 <what>吃饭</what> 18 19 </Note> 20 21 22 <Note> 23 24 <id>2</id> 25 26 <when>2016-1-21 20:00</when> 27 28 <who>Jiang</who> 29 30 <what>看电影</what> 31 32 </Note> 33 34 35 <Note> 36 37 <id>3</id> 38 39 <when>2016-1-20 9:00</when> 40 41 <who>Li</who> 42 43 <what>去博物馆</what> 44 45 </Note> 46 47 </NoteList> 48 49 </root>
1 #include <stdio.h> 2 #include <vector> 3 #include <string> 4 using namespace std; 5 6 7 #include "../tinyxml/AfTinyXml.h" 8 9 struct Note 10 { 11 int id; 12 char when[32]; 13 char who[32]; 14 char what[128]; 15 }; 16 17 vector<Note> notes; 18 19 int main() 20 { 21 // 解析xml 22 TiXmlDocument xml_doc; 23 if(!xml_doc.LoadFile("example02b.xml")) 24 { 25 return -1; 26 } 27 28 // 根节点 29 TiXmlElement* xml_root = xml_doc.RootElement(); 30 if (NULL == xml_root) 31 { 32 return -1; 33 } 34 35 // 获取元素的文本与属性 36 37 TiXmlElement* xml_NoteList = xml_root->FirstChildElement("NoteList"); 38 if(xml_NoteList) 39 { 40 TiXmlElement* xml_Note = xml_NoteList->FirstChildElement("Note"); 41 while(xml_Note) 42 { 43 // 取得子元素的文本 44 int id = AfTinyXml::childAsInt(xml_Note, "id"); 45 string when = AfTinyXml::childAsText(xml_Note, "when"); 46 string who = AfTinyXml::childAsText(xml_Note, "who"); 47 string what = AfTinyXml::childAsText(xml_Note, "what"); 48 49 // 保存到列表 50 Note r; 51 r.id = id; 52 strcpy(r.when, when.c_str()); 53 strcpy(r.who, who.c_str()); 54 strcpy(r.what, what.c_str()); 55 notes.push_back(r); 56 57 // 下一个兄弟元素 58 xml_Note = xml_Note->NextSiblingElement("Note"); 59 } 60 } 61 62 63 return 0; 64 }
posted on 2017-12-05 12:41 Doctor_uee 阅读(176) 评论(0) 收藏 举报
浙公网安备 33010602011771号