C++学习之 tinyxml库的应用解析xml文件

来源:互联网 发布:播音员录音软件 编辑:程序博客网 时间:2024/05/14 14:02

我的辅导员,又给我了我一个任务,上个星期五给我的任务,昨天就做完了,因为周末去了深圳,周一的时间才弄出来。先介绍一下我的主要工作内容,主要是利用C++对一个xml文档进行解析,将里边的内容放入一个结构体中,然后根据参数进行一级级的查找到所要得到数据。这里肯定是要用到map的了。以后也会利用这个工具进行工作。

         首先,我找了一些资料,比较一下发现利用tinyxml这个插件是比较好的,因为它很轻量级。操作很方便。功能很齐全。还是佩服前人技术高手啊。努力我也写一个像这样的库。

                  首先上一下xml文档吧。这个xml很长,结构很复杂。所以我对这个xml摸索了一段时间,而且利用tinyxml对其进行操作也很麻烦啊。

<?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><BRANCH><BRANCHCODE>ZQ</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75800000087226</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网(全球通)_本地:5元/月</SCHEMANAME></MSG><MSG><SCHEMACODE>75800000087228?</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网(全球通)_省内:10元/月</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>75800000087221?</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网(智能网)_本地:5元/月</SCHEMANAME></MSG><MSG><SCHEMACODE>75800000087227?</SCHEMACODE><PACKAGENAME>神州行省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网(智能网)_省内: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><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000051</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>VPMN省内漫游套餐功能费10元</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><BRANCH><BRANCHCODE>ZS</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>76000000002013</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网本地5元包月套餐(全球通)</SCHEMANAME></MSG><MSG><SCHEMACODE>76000000002014</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网跨市10元包月套餐(全球通)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000082</SCHEMACODE><PACKAGENAME>神州行省内10元包月</PACKAGENAME><SCHEMANAME>神州行VPMN省内漫游套餐10元(OCE专用)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><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><BRANCH><BRANCHCODE>ZJ</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75900000020036</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>全球通短号集群网(5元)</SCHEMANAME></MSG><MSG><SCHEMACODE>75900000020038 </SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>全球通短号集群网内省内漫游套餐10元</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>75900901200000</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网本地5元包月-神州行</SCHEMANAME></MSG><MSG><SCHEMACODE>75900000020039</SCHEMACODE><PACKAGENAME>神州行省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网省内10元包月(神州行)</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>75900000020041</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)省内10元包月</PACKAGENAME><SCHEMANAME>神州行 VPMN 省内漫游套餐 10 元( 回割 BOSS )</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024 </SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME> 动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>75900000020040</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 省内漫游套餐10元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>HY</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>76200000100576</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>5元本地包月全球通集团拓展VPMN优惠</SCHEMANAME></MSG><MSG><SCHEMACODE>76200000100580</SCHEMACODE><PACKAGENAME>全球通本地10元包月</PACKAGENAME><SCHEMANAME>10元本地包月全球通集团拓展VPMN优惠</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>76200762009007</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网5元包月</SCHEMANAME></MSG><MSG><SCHEMACODE>76200762009008</SCHEMACODE><PACKAGENAME>神州行本地10元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网10元包月</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>76200000000093</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)省内10元包月</PACKAGENAME><SCHEMANAME>神州行VPMN省内漫游套餐10元</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>76200000000095</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 省内漫游套餐 10元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>JM</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75000000022024</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网本地包月(全球通包月费5元)</SCHEMANAME></MSG><MSG><SCHEMACODE>75000000022022</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网省内包月(全球通包月费10元)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>75000000022064</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>75000000022002</SCHEMACODE><PACKAGENAME>动感地带、神州行本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网本地包月(预付费包月费5元)</SCHEMANAME></MSG><MSG><SCHEMACODE>75000000022020</SCHEMACODE><PACKAGENAME>动感地带、神州行省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网省内包月(预付费包月费10元)</SCHEMANAME></MSG><MSG><SCHEMACODE>75000000022062</SCHEMACODE><PACKAGENAME>动感地带(由全球通转至)本地5元包月</PACKAGENAME><SCHEMANAME>回割动感VPMN本地5元套餐(江门) </SCHEMANAME></MSG><MSG><SCHEMACODE>75000000022063</SCHEMACODE><PACKAGENAME>动感地带(由全球通转至)省内10元包月</PACKAGENAME><SCHEMANAME>回割动感VPMN省内漫游10元套餐(江门) </SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>CZ</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>76800000001038</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>集团本地包月</SCHEMANAME></MSG><MSG><SCHEMACODE>76800000001200</SCHEMACODE><PACKAGENAME>全球通省内15元包月</PACKAGENAME><SCHEMANAME>集团省内包月15元(含漫游费、长途费)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000024</SCHEMACODE><PACKAGENAME>神州行省内15元包月</PACKAGENAME><SCHEMANAME>神州行VPMN省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>YF</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>76600000562755</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>跨品牌VPMN全球通群内包月 5元</SCHEMANAME></MSG><MSG><SCHEMACODE>76600001011005</SCHEMACODE><PACKAGENAME>全球通省内15元包月</PACKAGENAME><SCHEMANAME>跨品牌VPMN全球通群内包月免互打长途 15 元套餐</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>76600001038657</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>跨品牌VPMN智能网群内包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>76600001011006</SCHEMACODE><PACKAGENAME>神州行省内15元包月</PACKAGENAME><SCHEMANAME>跨品牌VPMN智能网15元省内漫游套餐(包含5元月功能费)</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000024</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)省内15元包月</PACKAGENAME><SCHEMANAME>神州行VPMN省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>SZ</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75500000008982</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>全球通5元短号集群网套餐(200609)</SCHEMANAME></MSG><MSG><SCHEMACODE>75500000008983</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>全球通10元短号集群网套餐(200609)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>75500000008984</SCHEMACODE><PACKAGENAME>动感地带、神州行本地5元包月</PACKAGENAME><SCHEMANAME>预付费5元短号集群网套餐(200609)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>75500000008984</SCHEMACODE><PACKAGENAME>动感地带、神州行本地5元包月</PACKAGENAME><SCHEMANAME>预付费5元短号集群网套餐(200609)</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN包月套餐5元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>FS</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75700001001945</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>全球通</SCHEMANAME></MSG><MSG><SCHEMACODE>75700001001946</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>全球通</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>75700001009858</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>神州行(回割BOSS)、神州行(OCE)</SCHEMANAME></MSG><MSG><SCHEMACODE>75700001009859</SCHEMACODE><PACKAGENAME>神州行省内10元包月 </PACKAGENAME><SCHEMANAME>神州行(回割BOSS)、神州行(OCE)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>75700001001947</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带</SCHEMANAME></MSG><MSG><SCHEMACODE>75700001001948</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>动感地带</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>MM</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>66800000020206</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网本地5元包月(全球通)</SCHEMANAME></MSG><MSG><SCHEMACODE>66800000020207</SCHEMACODE><PACKAGENAME>全球通省内15元包月</PACKAGENAME><SCHEMANAME>短号集群网省内15元包月(全球通)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000024</SCHEMACODE><PACKAGENAME>神州行省内15元包月</PACKAGENAME><SCHEMANAME>神州行VPMN省内漫游套餐15元</SCHEMANAME></MSG><MSG><SCHEMACODE>66800901500000</SCHEMACODE><PACKAGENAME>神州行(OCS)本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网本地5元包月-神州行</SCHEMANAME></MSG><MSG><SCHEMACODE>66800901800000</SCHEMACODE><PACKAGENAME>神州行(OCS)省内15元包月</PACKAGENAME><SCHEMANAME>短号集群网省内15元包月(神州行)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>SW</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>66000000006077</SCHEMACODE><PACKAGENAME>全球通本地0元包月</PACKAGENAME><SCHEMANAME>集团本地包月(包月0)</SCHEMANAME></MSG><MSG><SCHEMACODE>66000000006030</SCHEMACODE><PACKAGENAME>全球通省内0元包月</PACKAGENAME><SCHEMANAME>集团省内包月减免(包月0)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><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>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>66000000080386</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN省内漫游套餐10元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>QY</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>76300000014368</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网5元包月套餐</SCHEMANAME></MSG><MSG><SCHEMACODE>76300000014369</SCHEMACODE><PACKAGENAME>全球通省内15元包月</PACKAGENAME><SCHEMANAME>VPN省内集群网15元包月套餐</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>76300763009000</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网5元包月套餐</SCHEMANAME></MSG><MSG><SCHEMACODE>76300763009011</SCHEMACODE><PACKAGENAME>神州行省内15元包月</PACKAGENAME><SCHEMANAME>VPN省内集群网15元包月套餐</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网5元包月套餐</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带省内15元包月</PACKAGENAME><SCHEMANAME>VPN省内集群网15元包月套餐</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>YJ</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>66200000030040</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>集群网本地包月套餐(5元)</SCHEMANAME></MSG><MSG><SCHEMACODE>66200000030041</SCHEMACODE><PACKAGENAME>全球通省内15元包月</PACKAGENAME><SCHEMANAME>集群网省内套餐资费(15元)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>66200901500000</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网本地5元包月-神州行</SCHEMANAME></MSG><MSG><SCHEMACODE>66200902200000</SCHEMACODE><PACKAGENAME>神州行省内15元包月</PACKAGENAME><SCHEMANAME>短号集群网省内包月(智能网包月费15元-神州行)</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元---回割</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000024</SCHEMACODE><PACKAGENAME>神州行(由其他品牌转至)省内15元包月</PACKAGENAME><SCHEMANAME>神州行VPMN省内漫游套餐15元---回割</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN省内漫游套餐15元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带(由其他品牌转至)省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>ST</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75400000007679</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>全球通VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>75400000007680</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>省内短号集群网10元套餐(全球通)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><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>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>75400000007678</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>省内短号集群网10元套餐(动感)</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>JY</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>66300000001061</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>全球通VPMN包月5元</SCHEMANAME></MSG><MSG><SCHEMACODE>66300001015770</SCHEMACODE><PACKAGENAME>全球通省内15元包月</PACKAGENAME><SCHEMANAME>全球通VPMN省内漫游包月15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>10091000000018</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>神州行VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000024</SCHEMACODE><PACKAGENAME>神州行省内15元包月</PACKAGENAME><SCHEMANAME>神州行VPMN省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 省内漫游套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>HZ</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75200000000325</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>全球通短号集群网5元本地套餐</SCHEMANAME></MSG><MSG><SCHEMACODE>75200000000326</SCHEMACODE><PACKAGENAME>全球通省内15元包月</PACKAGENAME><SCHEMANAME>全球通短号集群网15元省内包月套餐</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>75200752009000</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网5元包月</SCHEMANAME></MSG><MSG><SCHEMACODE>75200752009002</SCHEMACODE><PACKAGENAME>神州行省内15元包月</PACKAGENAME><SCHEMANAME>VPN省内集群网15元包月</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>10090000000024</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 省内漫游套餐15元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带(由其他品牌转至)本地5元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN包月套餐5元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000029</SCHEMACODE><PACKAGENAME>动感地带(由其他品牌转至)省内15元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN省内套餐15元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>ZH</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75600000060001</SCHEMACODE><PACKAGENAME>全球通本地10元包月</PACKAGENAME><SCHEMANAME>全球通短号VPMN本地10元群内包月费</SCHEMANAME></MSG><MSG><SCHEMACODE>75600000060000</SCHEMACODE><PACKAGENAME>全球通省内20元包月</PACKAGENAME><SCHEMANAME>全球通短号 VPMN 省内 20 元群内包月费 </SCHEMANAME></MSG>                                        <MSG>                                                <SCHEMACODE>75600000060016</SCHEMACODE>                                                <PACKAGENAME>全球通本地5元包月</PACKAGENAME>                                                <SCHEMANAME>全球通短号VPMN本地5元群内包月费</SCHEMANAME>                                        </MSG>                                        <MSG> <SCHEMACODE>75600000060017</SCHEMACODE>                                                <PACKAGENAME>全球通省内10元包月</PACKAGENAME>                                                <SCHEMANAME>全球通短号 VPMN 省内 10 元群内包月费 </SCHEMANAME>                                        </MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>10091000000019</SCHEMACODE><PACKAGENAME>神州行本地10元包月</PACKAGENAME><SCHEMANAME>神州行 VPMN 包月套餐 10 元</SCHEMANAME></MSG><MSG><SCHEMACODE>10091000000025</SCHEMACODE><PACKAGENAME>神州行省内20元包月</PACKAGENAME><SCHEMANAME>神州行 VPMN 省内漫游套餐 20 元</SCHEMANAME></MSG>                                        <MSG>                                                <SCHEMACODE>10091000000018</SCHEMACODE>                                                <PACKAGENAME>神州行省内5元包月</PACKAGENAME>                                                <SCHEMANAME>神州行 VPMN 包月套餐 5 元  </SCHEMANAME>                                        </MSG>                                        <MSG>                                                <SCHEMACODE>10091000000082</SCHEMACODE>                                                <PACKAGENAME>神州行省内10元包月</PACKAGENAME>                                                <SCHEMANAME>神州行 VPMN 省内漫游套餐 10 元  </SCHEMANAME>                                        </MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000021</SCHEMACODE><PACKAGENAME>动感地带本地10元包月</PACKAGENAME><SCHEMANAME>动感地带 VPMN 包月套餐 10 元 </SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000030</SCHEMACODE><PACKAGENAME>动感地带省内20元包月</PACKAGENAME><SCHEMANAME>动感地带 VPMN 省内漫游套餐 20 元 </SCHEMANAME></MSG>                                        <MSG>                                                <SCHEMACODE>75600000060014</SCHEMACODE>                                                <PACKAGENAME>动感地带省内5元包月</PACKAGENAME>                                                <SCHEMANAME>动感地带 VPMN 套餐功能费 5 元(优惠) </SCHEMANAME>                                        </MSG>                                        <MSG>                                                <SCHEMACODE>75600000060015</SCHEMACODE>                                                <PACKAGENAME>动感地带省内10元包月</PACKAGENAME>                                                <SCHEMANAME>动感地带 VPMN 省内漫游套餐 10 元(优惠) </SCHEMANAME>                                        </MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>MZ</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75300000000215</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网_本地_5元套餐(全球通)</SCHEMANAME></MSG><MSG><SCHEMACODE>75300000000216</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网_跨市_10元套餐(全球通)</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>75300000000222</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>回割神大VPMN本地5元套餐</SCHEMANAME></MSG><MSG><SCHEMACODE>75300000000223</SCHEMACODE><PACKAGENAME>神州行省内10元包月</PACKAGENAME><SCHEMANAME>回割神大VPMN本地10元套餐</SCHEMANAME></MSG><MSG><SCHEMACODE>75300753009013</SCHEMACODE><PACKAGENAME>神州行(OCS)本地5元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网5元包月</SCHEMANAME></MSG><MSG><SCHEMACODE>75300753009024</SCHEMACODE><PACKAGENAME>神州行(OCS)省内10元包月</PACKAGENAME><SCHEMANAME>VPN省内集群网10元包月</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>75300000000219</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>短号集群网_本地_5元套餐(动感地带)</SCHEMANAME></MSG><MSG><SCHEMACODE>75300000000220</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>短号集群网_跨市_10元套餐(动感地带)</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH><BRANCH><BRANCHCODE>SG</BRANCHCODE><BRANDS><BRAND><CODE>1</CODE><PACKAGEMSG><MSG><SCHEMACODE>75100000008237</SCHEMACODE><PACKAGENAME>全球通本地5元包月</PACKAGENAME><SCHEMANAME>(8237)套餐33(集团月租5</SCHEMANAME></MSG><MSG><SCHEMACODE>75100000001028</SCHEMACODE><PACKAGENAME>全球通省内10元包月</PACKAGENAME><SCHEMANAME>套餐24(集团网内跨市包月10元</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>2</CODE><PACKAGEMSG><MSG><SCHEMACODE>75100751009000</SCHEMACODE><PACKAGENAME>神州行本地5元包月</PACKAGENAME><SCHEMANAME>VPN本地集群网5元包月套餐</SCHEMANAME></MSG><MSG><SCHEMACODE>75100751009010</SCHEMACODE><PACKAGENAME>神州行省内10元包月</PACKAGENAME><SCHEMANAME>VPN省内集群网10元包月套餐</SCHEMANAME></MSG></PACKAGEMSG></BRAND><BRAND><CODE>3</CODE><PACKAGEMSG><MSG><SCHEMACODE>10090000000051</SCHEMACODE><PACKAGENAME>动感地带本地5元包月</PACKAGENAME><SCHEMANAME>VPMN 省内漫游套餐功能费10元</SCHEMANAME></MSG><MSG><SCHEMACODE>10090000000024</SCHEMACODE><PACKAGENAME>动感地带省内10元包月</PACKAGENAME><SCHEMANAME>动感地带VPMN 包月套餐5元</SCHEMANAME></MSG></PACKAGEMSG></BRAND></BRANDS></BRANCH></CONFIG>

简单介绍一些tinyxml库所对应的一些重要方法吧:


在TinyXML中,根据XML的各种元素来定义了一些类:
        TiXmlBase:整个TinyXML模型的基类。
        TiXmlAttribute:对应于XML中的元素的属性。
        TiXmlNode:对应于DOM结构中的节点。
        TiXmlComment:对应于XML中的注释。
        TiXmlDeclaration:对应于XML中的申明部分,即<?versiong="1.0" ?>。
        TiXmlDocument:对应于XML的整个文档。
        TiXmlElement:对应于XML的元素。
        TiXmlText:对应于XML的文字部分。
        TiXmlUnknown:对应于XML的未知部分。
        TiXmlHandler:定义了针对XML的一些操作。


想要健壮地读取一个XML文档,检查方法调用后的返回值是否为null是很重要的。一种安全的检错实现可能会产生像这样的代码:

TiXmlElement* root = document.FirstChildElement( "Document" );if ( root ){TiXmlElement* element = root->FirstChildElement( "Element" );if ( element ){TiXmlElement* child = element->FirstChildElement( "Child" );if ( child ){TiXmlElement* child2 = child->NextSiblingElement( "Child" );if ( child2 ){// Finally do something useful




 

         然后观察他的文档结构。我变形成了三个结构体,如下:cluster.h

#include <map>#include <string>using namespace std;struct s_msg{public:string SCHEMACODE;string PACKAGENAME;string SCHEMANAME;};struct s_code{public://20000001033775string SCHEMACODE;map<string,s_msg> map_msg;};struct s_bran{public:string CODE;//1map<string,s_code> map_PACKAGEMSG;};


定义成这样的结构体,主要是因为我要找到 s_msg 的内容 通过 GZ,然后还有code 差到下一册,然后再通过SCHEMACODE 再找到下一层进行查找。

下面在给出主要函数的实现。

//// XMLParse_test_3_using_LoadFile.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <fstream>#include <map>#include "tinyxml.h"#include "tinystr.h"#include "Cluster.h"using namespace std; s_msg msg;  s_code code; s_bran bran;s_BRANCHCODE branch;map<string,s_bran> map_BRANCHCODE; //map<string,s_msg> map_msg; //map<string,s_code> map_PACKAGEMSG; map<string,s_bran>  getXmlContent() {// map<string,msg> mes_map;// map<string,s_code> code_map; //map<string,code_map> branch_map; string fileXml = "ClusterPackage.xml"; TiXmlDocument doc( fileXml.c_str() ); doc.LoadFile(); if ( !doc.Parse( fileXml.c_str() ) ) { cout << doc.ErrorDesc() << endl; } //一下将是对每个节点进行解析come  on const TiXmlElement *root = doc.RootElement(); cout << endl << " The root element is : " << root->Value() << endl << endl; const TiXmlElement *childElement=root->FirstChildElement(); // for ( const TiXmlNode *child = root->FirstChild(); child; child = child->NextSibling() ) { //cout<<child->Value()<<endl;//BRANCH const TiXmlElement *brn=child->FirstChildElement();//cout<<brn->FirstChild()->Value()<<endl;// 输出的是GZstring str_branchecode=brn->FirstChild()->Value(); //const TiXmlElement *secRoot=child->FirstChildElement(); //cout<<secRoot->Value()<<endl;//BRANCHCODE brn = brn->NextSiblingElement();// cout<<brn->Value() << endl ;//BRANDS //BRAND for (const TiXmlElement *child2=brn->FirstChildElement();child2;child2=child2->NextSiblingElement()) { //child2->FirstChild();//code const TiXmlElement *pCodeNode = child2->FirstChildElement();// cout<<pCodeNode->Value() << " : " << pCodeNode->GetText() ; //code值 //cout<<endl; const TiXmlElement *packageNode=pCodeNode->NextSiblingElement();// cout<<packageNode->Value()<<endl;//PACKAGEMSG for (const TiXmlElement *child3=packageNode->FirstChildElement();child3;child3=child3->NextSiblingElement()) {   // const TiXmlElement *msgNode=child3->FirstChildElement();// cout<<msgNode->FirstChild()->Value()<<endl;    //20000001033775 msg.SCHEMACODE=msgNode->FirstChild()->Value(); const TiXmlElement *PACKAGENAMEnode=msgNode->NextSiblingElement();// cout<<PACKAGENAMEnode->GetText()<<endl; msg.PACKAGENAME=PACKAGENAMEnode->GetText(); const TiXmlElement *SCHEMANAMEnode=PACKAGENAMEnode->NextSiblingElement();// cout<<SCHEMANAMEnode->GetText()<<endl; msg.SCHEMANAME=SCHEMANAMEnode->GetText();// map_msg[msg.SCHEMACODE]=msg; code.SCHEMACODE=msg.SCHEMACODE; code.map_msg[code.SCHEMACODE]=msg; }bran.CODE=pCodeNode->GetText();//code 做为key,//cout<<bran.CODE<<endl;bran.map_PACKAGEMSG[bran.CODE]=code;   }//这个是放到一个结构体内的。//branch.BRANCHCODE=brn->FirstChild()->Value();//GZ  KEY//branch.map_BRANCHCODE[branch.BRANCHCODE]=bran;//直接放到map内// cout<<child->FirstChildElement()->Value()<<endl;map_BRANCHCODE[str_branchecode]=bran; } return map_BRANCHCODE; }int find_MSG(string BRANCHCODE,string CODE,string SCHEMACODE , s_msg& msg){map<string,s_bran> a_bran=getXmlContent();map<string,s_bran>::iterator iterBran= a_bran.find(BRANCHCODE);if (iterBran != a_bran.end()){s_bran& re_bran = iterBran->second;map<string,s_code>::iterator itercode =re_bran.map_PACKAGEMSG.find(CODE);if (itercode!=re_bran.map_PACKAGEMSG.end()){s_code& re_code=itercode->second;map<string,s_msg>:: iterator itermsg=re_code.map_msg.find(SCHEMACODE);if (itermsg!=re_code.map_msg.end()){msg=itermsg->second;return 0;}else{cout<<"无此号"<<endl;return -1;}}else{cout<<"无此编号"<<endl;return -1;}return 0;}else{cout<<"没有该城市"<<endl;       return -1;}}int _tmain(int argc, _TCHAR* argv[]){string BRANCHCODE;string CODE;string SCHEMACODE;cout<<"请输入一下参数:"<<endl;cout<<"BRANCHCODE:";cin>>BRANCHCODE;cout<<"CODE:";cin>>CODE;cout<<"SCHEMACODE:";cin>>SCHEMACODE;s_msg l_msg;find_MSG(BRANCHCODE,CODE,SCHEMACODE,l_msg);return 0;}


呵呵,主要是两个实现方法一个是对xml进行解析,将其放入到一个map对象中,就是一个一个映射的关系,加入到这些。

原创粉丝点击