• TinyXML


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

    2. 下载
    http://prdownloads.sourceforge.net/tinyxml

    3. 头文件

    #include "tinyxml.h"
    #include "tinystr.h"  

    4. 生成xml

    TiXmlDocument *pDoc = new TiXmlDocument;        //生成XML
    TiXmlDeclaration *pDeclaration = new TiXmlDeclaration("1.0","UTF-8","");        //序言区
    pDoc->LinkEndChild(pDeclaration);
    TiXmlElement *GPS = new TiXmlElement("GPS");        //父结点    ->省略了根结点
    pDoc->LinkEndChild(GPS);
    TiXmlElement *pCode = new TiXmlElement("Code"); 
    GPS->LinkEndChild(pCode);
    TiXmlElement *pSDate = new TiXmlElement("SDate");
    GPS->LinkEndChild(pSDate);
    
    TiXmlText *tCode = new TiXmlText("");
    pCode->LinkEndChild(tCode);
    TiXmlText *tSDate = new TiXmlText("");
    pSDate->LinkEndChild(tSDate);
    
    TiXmlPrinter printer;
    pDoc->Accept(&printer);
    //打印XML字符串
    cout << printer.CStr() << endl;
    
    //生成xml格式文件
    pDoc->SaveFile("Respond.xml");
    <?xml version="1.0" encoding="UTF-8" ?>
    <GPS>
        <Code>D1</Code>
        <SDate>2013-08-2112:41:05</SDate>
    </GPS>  

    5. 节点附加属性

    parent->SetAttribute("time","12:10");        //属性可以添加多个,格式是(属性名,属性值字符串)

    6. 解析xml

    TiXmlDocument *pDoc = new TiXmlDocument();
    pDoc->Clear();        //开始做清空操作,放置Parse解析一个不变的字符串 
    pDoc->Parse(" ");    //解析字符串
    pDoc->LoadFile("*.xml");    //解析xml文件 
    
    TiXmlElement *RootElement = pDoc->RootElement();
    TiXmlElement *Code = RootElement->FirstChildElement();
    printf("%s
    ",Code->GetText());
    TiXmlElement *SDate = Code->NextSiblingElement(); 

    7. 获取节点值

    pNameEle->Value();        //结点名
    pNameEle->GetText();        //内容
    pNameEle->Attribute("id");    //结点属性

    8. 查询指定字段

    TiXmlDocument pDoc;
    pDoc.RootElement()->FirstChild()->Value();    //取得第一个子节点名
    pDoc.RootElement()->FirstChild("IName")->NextSibling()->Value()    //取得某一个节点的下一个节点名
    pDoc.RootElement()->FirstChild("SDate")->ToElement()->GetText();    //取得子节点值

    9. CDATA区段
    XML文件中的CDATA区段以

    <![CDATA[

    开始,以

    ]]> 

    结束
    CDATA区段中的文本不会被XML解析器解析,无论它们带有什么内容
    你可以用CDATA区段来存储含有不想被解析的文本(例如程序代码段)

    string strCDATA = RootElement()->FirstChild()->Value();             //获取CDATA区段的数据

    10. 简易生成方法

    const char *str = "<GPS><body><![CDATA[fuck]]></body></GPS>" ;
  • 相关阅读:
    基于决策树和智能搜索系统
    基于神经网络的人工智能系统
    身边的人工智能&人工智能发展史
    Linux简介和环境的搭建
    回来啦
    顺序表
    方格计数
    2000年的1月1日,是那一年的第1天。 那么,2000年的5月4日,是那一年的第几天?
    十三、排序算法
    十二、预处理
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709904.html
Copyright © 2020-2023  润新知