﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-天下-随笔分类-第三方库</title><link>http://www.cppblog.com/aaxron/category/15299.html</link><description>修行</description><language>zh-cn</language><lastBuildDate>Fri, 26 Apr 2013 13:58:46 GMT</lastBuildDate><pubDate>Fri, 26 Apr 2013 13:58:46 GMT</pubDate><ttl>60</ttl><item><title>TinyXML使用</title><link>http://www.cppblog.com/aaxron/archive/2013/04/22/199644.html</link><dc:creator>天下</dc:creator><author>天下</author><pubDate>Mon, 22 Apr 2013 10:05:00 GMT</pubDate><guid>http://www.cppblog.com/aaxron/archive/2013/04/22/199644.html</guid><wfw:comment>http://www.cppblog.com/aaxron/comments/199644.html</wfw:comment><comments>http://www.cppblog.com/aaxron/archive/2013/04/22/199644.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/aaxron/comments/commentRss/199644.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/aaxron/services/trackbacks/199644.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />TinyXML&nbsp;官网<br /></span><span style="color: #008000; text-decoration: underline; ">http://sourceforge.net/projects/tinyxml/</span><span style="color: #008000; "><br /><br />在TinyXML中，根据XML的各种元素来定义了一些类：<br />TiXmlBase：整个TinyXML模型的基类。<br />TiXmlAttribute：对应于XML中的元素的属性。<br />TiXmlNode：对应于DOM结构中的节点。<br />TiXmlComment：对应于XML中的注释<br />TiXmlDeclaration：对应于XML中的申明部分，如：&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />TiXmlDocument：对应于XML的整个文档。<br />TiXmlElement：对应于XML的元素。<br />TiXmlText：对应于XML的文字部分<br />TiXmlUnknown：对应于XML的未知部分。<br />TiXmlHandler：定义了针对XML的一些操作。<br /><br />关键宏：TIXML_USE_STL<br />我是直接在tinyxml.h&nbsp;中直接&nbsp;#define&nbsp;TIXML_USE_STL<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />//xml文档<br /><br />&lt;?xml&nbsp;version="1.0"&nbsp;standalone="no"&nbsp;?&gt;<br />&lt;!--&nbsp;Our&nbsp;to&nbsp;do&nbsp;list&nbsp;data&nbsp;--&gt;<br />&lt;ToDo&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;Do&nbsp;I&nbsp;need&nbsp;a&nbsp;secure&nbsp;PDA?&nbsp;--&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Item&nbsp;priority="1"&nbsp;distance="close"&gt;菜单1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bold&gt;Toy&nbsp;store!&lt;/bold&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;/Item&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Item&nbsp;priority="2"&nbsp;distance="none"&gt;菜单2&lt;/Item&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;Item&nbsp;priority="2"&nbsp;distance="far&nbsp;&amp;amp;&nbsp;back"&gt;Look&nbsp;for&nbsp;Evil&nbsp;Dinosaurs!&lt;/Item&gt;<br />&lt;/ToDo&gt;<br /></span><span style="color: #008000; ">*/</span><br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />#include&nbsp;&lt;stdio.h&gt;<br /><span style="color: #0000FF; ">using</span>&nbsp;<span style="color: #0000FF; ">namespace</span>&nbsp;std;<br />#include&nbsp;"tinyxml.h"<br /><br /><span style="color: #0000FF; ">int</span>&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nVale&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;nRet&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">string</span>&nbsp;strValue;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;TiXmlDocument&nbsp;doc(&nbsp;"demotest.xml"&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">bool</span>&nbsp;loadOkay&nbsp;=&nbsp;doc.LoadFile();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(&nbsp;!loadOkay&nbsp;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;"Could&nbsp;not&nbsp;load&nbsp;test&nbsp;file&nbsp;'demotest.xml'.&nbsp;Error='%s'.&nbsp;Exiting.\n",&nbsp;doc.ErrorDesc()&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(&nbsp;1&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;TiXmlNode*&nbsp;node&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TiXmlElement*&nbsp;rootElement&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TiXmlElement*&nbsp;itemElement&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TiXmlElement*&nbsp;childElement&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;rootElement&nbsp;=&nbsp;doc.RootElement();<br />&nbsp;&nbsp;&nbsp;&nbsp;assert(&nbsp;rootElement&nbsp;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;rootElement-&gt;Value()&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;itemElement&nbsp;=&nbsp;rootElement-&gt;FirstChildElement();&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;itemElement-&gt;Value()&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;itemElement-&gt;FirstAttribute()-&gt;Value()&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;nRet&nbsp;=&nbsp;itemElement-&gt;QueryIntAttribute("priority",&amp;nVale);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(nRet==0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;nVale&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;nRet&nbsp;=&nbsp;itemElement-&gt;QueryStringAttribute("distance",&amp;strValue);<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(nRet==0)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;strValue&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;strValue&nbsp;=&nbsp;itemElement-&gt;GetText();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;strValue&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;childElement&nbsp;=&nbsp;itemElement-&gt;FirstChildElement();<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(childElement!=NULL)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strValue&nbsp;=&nbsp;childElement-&gt;Value();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;strValue&nbsp;&lt;&lt;&nbsp;endl;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strValue&nbsp;=&nbsp;childElement-&gt;GetText();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;strValue&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;itemElement&nbsp;=&nbsp;itemElement-&gt;NextSiblingElement();<br />&nbsp;&nbsp;&nbsp;&nbsp;assert(itemElement);<br />&nbsp;&nbsp;&nbsp;&nbsp;strValue&nbsp;=&nbsp;itemElement-&gt;GetText();<br />&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;&lt;&lt;&nbsp;strValue&nbsp;&lt;&lt;&nbsp;endl;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;0;<br />}<br />&nbsp; &nbsp;&nbsp;</div><img src ="http://www.cppblog.com/aaxron/aggbug/199644.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/aaxron/" target="_blank">天下</a> 2013-04-22 18:05 <a href="http://www.cppblog.com/aaxron/archive/2013/04/22/199644.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>