如何利用tinyxml进行解析一下文件,生成map对象。
- XML code
<?xml version="1.0" encoding="GBK"?><CONFIG> <BRANCH> <BRANCHCODE>GZ</BRANCHCODE> <BRANDS> <BRAND> <CODE>1</CODE> <PACKAGEMSG> <MSG> <SCHEMACODE>20000001033775</SCHEMACODE> <PACKAGENAME>全球通本地5元包月</PACKAGENAME> <SCHEMANAME>短号集群网(全球通)5元本地包月套餐</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>20000001033780</SCHEMACODE> <PACKAGENAME>全球通省内10元包月</PACKAGENAME> <SCHEMANAME>短号集群网(全球通)10元省内包月套餐</SCHEMANAME> </MSG> </PACKAGEMSG> </BRAND> <BRAND> <CODE>3</CODE> <PACKAGEMSG> <MSG> <SCHEMACODE>20010901100000</SCHEMACODE> <PACKAGENAME>动感地带本地5元包月</PACKAGENAME> <SCHEMANAME>动感地带VPN本地集群网5元包月60011套餐</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>20010902400000</SCHEMACODE> <PACKAGENAME>动感地带省内10元包月</PACKAGENAME> <SCHEMANAME>动感地带VPN省内集群网10元包月60024套餐</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10090000000024</SCHEMACODE> <PACKAGENAME>动感地带(由其他品牌转至)本地5元包月</PACKAGENAME> <SCHEMANAME>动感地带VPMN包月套餐5元</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10000001001948</SCHEMACODE> <PACKAGENAME>动感地带(由其他品牌转至)省内10元包月</PACKAGENAME> <SCHEMANAME>动感地带VPMN省内套餐10元</SCHEMANAME> </MSG> </PACKAGEMSG> </BRAND> <BRAND> <CODE>2</CODE> <PACKAGEMSG> <MSG> <SCHEMACODE>20000200009000</SCHEMACODE> <PACKAGENAME>神州行本地5元包月</PACKAGENAME> <SCHEMANAME>[广州]VPN本地套餐-月租5元</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>20000200009010</SCHEMACODE> <PACKAGENAME>神州行省内10元包月</PACKAGENAME> <SCHEMANAME>[广州]VPN省内套餐-月租10元</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10091000000018</SCHEMACODE> <PACKAGENAME>神州行(由其他品牌转至)本地5元包月</PACKAGENAME> <SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10091000000068</SCHEMACODE> <PACKAGENAME>神州行(由其他品牌转至)省内10元包月</PACKAGENAME> <SCHEMANAME>神州行VPMN省内漫游套餐功能费10元</SCHEMANAME> </MSG> </PACKAGEMSG> </BRAND> </BRANDS> </BRANCH> <BRANCH> <BRANCHCODE>DG</BRANCHCODE> <BRANDS> <BRAND> <CODE>1</CODE> <PACKAGEMSG> <MSG> <SCHEMACODE>76900000000102</SCHEMACODE> <PACKAGENAME>全球通本地5元</PACKAGENAME> <SCHEMANAME>VPMN集团优惠5N(5元本地包月, 省内的国内ip5折)</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>76900001002947</SCHEMACODE> <PACKAGENAME>全球通省内10元</PACKAGENAME> <SCHEMANAME>全球通省内群内10元包月(含长途费)</SCHEMANAME> </MSG> </PACKAGEMSG> </BRAND> <BRAND> <CODE>2</CODE> <PACKAGEMSG> <MSG> <SCHEMACODE>76900769001024</SCHEMACODE> <PACKAGENAME>动感地带、神州行本地5元包月</PACKAGENAME> <SCHEMANAME>智能网本地群内5元包月(OCS)</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>76900769001025</SCHEMACODE> <PACKAGENAME>动感地带、神州行本地10元包月</PACKAGENAME> <SCHEMANAME>智能网省内群内10元包月(OCS含长途费)</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10091000000018</SCHEMACODE> <PACKAGENAME>神州行(由其他品牌转至)本地5元包月</PACKAGENAME> <SCHEMANAME>神州行VPMN 包月套餐5 元</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10091000000068</SCHEMACODE> <PACKAGENAME>神州行(由其他品牌转至)省内10元包月</PACKAGENAME> <SCHEMANAME>神州行VPMN 省内漫游套餐功能费10 元</SCHEMANAME> </MSG> </PACKAGEMSG> </BRAND> <BRAND> <CODE>3</CODE> <PACKAGEMSG> <MSG> <SCHEMACODE>76900769001024</SCHEMACODE> <PACKAGENAME>动感地带、神州行本地5元包月</PACKAGENAME> <SCHEMANAME>智能网本地群内5元包月(OCS)</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>76900769001025</SCHEMACODE> <PACKAGENAME>动感地带、神州行本地10元包月</PACKAGENAME> <SCHEMANAME>智能网省内群内10元包月(OCS含长途费)</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10090000000024</SCHEMACODE> <PACKAGENAME>动感地带(由其他品牌转至)本地5元包月</PACKAGENAME> <SCHEMANAME>动感地带 VPMN 包月套餐 5 元</SCHEMANAME> </MSG> <MSG> <SCHEMACODE>10090000000051</SCHEMACODE> <PACKAGENAME>动感地带(由其他品牌转至)省内10元包月</PACKAGENAME> <SCHEMANAME>VPMN 省内漫游套餐功能费 10 元</SCHEMANAME> </MSG> </PACKAGEMSG> </BRAND> </BRANDS> </BRANCH> </CONFIG>
将内容放入到map对象里,如何实现,搞了好久没搞出来啊,这个xml超级复杂,,,,,,,
[解决办法]
TiXmlDocument *myDocument= new TiXmlDocument(szPath);
myDocument->LoadFile();//加载xml
TiXmlElement *RootElement=myDocument->RootElement();//指到根节点
TiXmlElement *child = RootElement->FirstChildElement();//指到孩子节点
TiXmlElement *child1 = child->NextSiblingElement();//孩子节点的兄弟节点
TiXmlElement *child2 = child1->NextSiblingElement();
Sizeinfor=child2->Attribute("PACKAGENAME");//取元素值
[解决办法]
至少的5层才能实现,建议把每一层进行封装,这样防止代码实现过程出现多次循环,代码的结构性就很差了,修改维护比你写代码的工作大得多了。
[解决办法]
阁下 , 在中国移动实习?!
[解决办法]