首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么利用tinyxml进行解析一上文件,生成地图对象

2012-09-28 
如何利用tinyxml进行解析一下文件,生成map对象。XML code?xml version1.0 encodingGBK?CONFIGBR

如何利用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层才能实现,建议把每一层进行封装,这样防止代码实现过程出现多次循环,代码的结构性就很差了,修改维护比你写代码的工作大得多了。
[解决办法]
阁下 , 在中国移动实习?!
[解决办法]
探讨
TiXmlDocument *myDocument= new TiXmlDocument(szPath);
myDocument->LoadFile();//加载xml
TiXmlElement *RootElement=myDocument->RootElement();//指到根节点
TiXmlElement *child = RootElement->FirstChildElement……

热点排行