大家好,欢迎来到IT知识分享网。
【C++】郭老二博文之:C++目录
1、简介
DTD 语法:
<!DOCTYPE 存档 [ <!ELEMENT 注释 (#PCDATA)> ]>
2、集成到项目中
TinyXML可以轻松集成到项目中,只需将两个头文件、四个源文件添加到项目中即可。
tinystr.h tinyxml.h tinystr.cpp tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp
3、添加对STL的支持
在文件tinyxml.h的开头添加如下宏,即可支持STL
#define TIXML_USE_STL
4、打印显示
TinyXML支持三种打印:
Print(FILE*) 输出到文件或者标准输出(有换行符,输出漂亮) operator<< 输出到 C++ 流与,标准 C++ iostream 集成(无换行符,不易阅读,适合网络传输) TiXmlPrinter 输出到 std::string 或内存缓冲区
5、输入输出流
5)打印示例
#include <iostream> #include <sstream> #include "tinyxml.h" using namespace std; int main() {
TiXmlDocument doc( "demotest.xml" ); bool loadOkay = doc.LoadFile(); # a)打印到标准输出 doc.Print( stdout ); # b) 使用 TiXmlPrinter 打印 TiXmlPrinter printer; doc.Accept( &printer ); fprintf( stdout, "%s", printer.CStr() ); # c)使用c++操作符<< std::cout << doc;
6、多个空格的处理
TinyXML 支持前两种方法。调用TiXmlBase::SetCondenseWhiteSpace( bool )设置所需的行为。默认是压缩空白区域。
7、错误检查
1)检查函数的返回值是否是: 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.
2)使用句柄 TiXmlHandle 简化检查
TiXmlHandle docHandle( &document ); TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).ToElement(); if ( child2 ) {
// do something useful
8、TinyXML如何描述XML
1)XML文档示例
<?xml version="1.0" standalone=no> <!-- Our to do list data --> <ToDo> <Item priority="1"> Go to the <bold>Toy store!</bold></Item> <Item priority="2"> Do bills</Item> </ToDo>
2)读取XML
TiXmlDocument doc( "demo.xml" ); doc.LoadFile();
4)注释
<!-- Our to do list data -->将被保存在 TiXmlUnknown 中
完整的对应关系如下:
TiXmlDocument "demo.xml" TiXmlDeclaration "version='1.0'" "standalone=no" TiXmlComment " Our to do list data" TiXmlElement "ToDo" TiXmlElement "Item" Attribtutes: priority = 1 TiXmlText "Go to the " TiXmlElement "bold" TiXmlText "Toy store!" TiXmlElement "Item" Attributes: priority=2 TiXmlText "Do bills"
9、类简介
TiXmlAttribute 属性是名称-值对 TiXmlBase TinyXml 中每个类的基类 TiXmlComment XML 注释 TiXmlDeclaration 在正确的 XML 中,声明是文件中的第一个行 TiXmlDocument 始终是顶级节点 TiXmlElement 元素是一个容器类 TiXmlHandle TiXmlHandle是一个用空检查包装节点指针的类;这是一个非常有用的类 TiXmlNode 文档对象模型中所有内容的父类 TiXmlPrinter 打印到内存功能 TiXmlText XML文本 TiXmlUnknown tinyXml 无法识别的任何标记都会保存为未知标记 TiXmlVisitor 实现“访问者模式”的接口
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112173.html