tinyXML generation and parsing

The files to be parsed are as follows

<company name="广东凯通">
 <department name="研发部">
  <staff name="张三" payment="102"/>
  <staff name="李四" payment="150"/>
 </department>
 <department name="市场部">
  <staff name="王五" payment="130"/>
 </department>

</company>

--------------------------------------------------------------------

#include <iostream>

#include <string>

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


using namespace std;


void readXmlFile() 
{
    const char * xmlFile = "school-write.xml";
    TiXmlDocument doc;                              
    if (doc.LoadFile(xmlFile)) {
        doc.Print();
    } else {
        cout << "can not parse xml school-write.xml" << endl;
        return;
    }
    TiXmlElement* rootElement = doc.RootElement();  //School元素  
TiXmlElement* departMentElement = rootElement->FirstChildElement();
    for (; departMentElement != NULL; departMentElement = departMentElement->NextSiblingElement() ) //Get the name property of the student  
{

        TiXmlAttribute* attributeOfDepartMent = departMentElement->FirstAttribute();
        for (;attributeOfDepartMent != NULL; attributeOfDepartMent = attributeOfDepartMent->Next() ) 
{
            cout << attributeOfDepartMent->Name() << " : " << attributeOfDepartMent->Value() << std::endl;       
        }                                  //获得student的第一个联系方式         TiXmlElement* StaffElement = departMentElement->FirstChildElement();         TiXmlAttribute* attributeOfStaff = StaffElement->FirstAttribute(); for (;attributeOfStaff != NULL; attributeOfStaff = attributeOfStaff->Next() )  {             cout << attributeOfStaff->Name() << " : "<<attributeOfStaff->Value() << std::endl;       







        }         } } void writeSchoolXml()  {     const char * xmlFile = "school-write.xml";      TiXmlDocument doc;       TiXmlDeclaration * decl = new TiXmlDeclaration("1.0", "", "");       TiXmlElement * schoolElement = new TiXmlElement( "School" );       TiXmlElement * classElement = new TiXmlElement( "Class" );       classElement->SetAttribute("name", "C++");     TiXmlElement * stu1Element = new TiXmlElement("Student");     stu1Element->SetAttribute("name", "tinyxml");     stu1Element->SetAttribute("number", "123");     TiXmlElement * stu1EmailElement = new TiXmlElement("email");


















    stu1EmailElement->LinkEndChild(new TiXmlText("[email protected]") );
    TiXmlElement * stu1AddressElement = new TiXmlElement("address");
    stu1AddressElement->LinkEndChild(new TiXmlText("中国"));
    stu1Element->LinkEndChild(stu1EmailElement);
    stu1Element->LinkEndChild(stu1AddressElement);     TiXmlElement * stu2Element = new TiXmlElement("Student");     stu2Element->SetAttribute("name", "jsoncpp");     stu2Element->SetAttribute("number", "456");     TiXmlElement * stu2EmailElement = new TiXmlElement("email");     stu2EmailElement->LinkEndChild(new TiXmlText("[email protected]"));     TiXmlElement * stu2AddressElement = new TiXmlElement("address");







    stu2AddressElement->LinkEndChild(new TiXmlText("美国"));
    stu2Element->LinkEndChild(stu2EmailElement);
    stu2Element->LinkEndChild(stu2AddressElement);     classElement->LinkEndChild(stu1Element);       classElement->LinkEndChild(stu2Element);       schoolElement->LinkEndChild(classElement);       doc.LinkEndChild(decl);       doc.LinkEndChild(schoolElement);      doc.SaveFile(xmlFile);   } void WriteXmlFile() { TiXmlDocument XmlDoc; TiXmlDeclaration *XmlDel = new TiXmlDeclaration("1.0", "gb2312", ""); //公司 TiXmlElement *CompanyElement  = new TiXmlElement("Company");




    















CompanyElement->SetAttribute("name", "凯通"); //研发部 TiXmlElement *RD_DepartmentElement  = new TiXmlElement("department"); RD_DepartmentElement->SetAttribute("name", "研发部"); TiXmlElement *RD_StaffElement1    = new TiXmlElement("staff"); RD_StaffElement1->SetAttribute("name", "张三"); RD_StaffElement1->SetAttribute("payment", "102"); TiXmlElement *RD_StaffElement2    = new TiXmlElement("staff"); RD_StaffElement2->SetAttribute("name", "李四"); RD_StaffElement2->SetAttribute("payment", "150"); //市场部 TiXmlElement *MarketDepartmentElement  = new TiXmlElement("department"); MarketDepartmentElement->SetAttribute("name", "市场部");














TiXmlElement *MarketStaffElement    = new TiXmlElement("staff");
MarketStaffElement ->SetAttribute("name", "王五");
MarketStaffElement ->SetAttribute("payment", "130"); RD_DepartmentElement->LinkEndChild(RD_StaffElement1); RD_DepartmentElement->LinkEndChild(RD_StaffElement2); MarketDepartmentElement->LinkEndChild(MarketStaffElement); CompanyElement->LinkEndChild(RD_DepartmentElement); CompanyElement->LinkEndChild(MarketDepartmentElement); XmlDoc.LinkEndChild(XmlDel); XmlDoc.LinkEndChild(CompanyElement); XmlDoc.Print(); } int main(int argc, char *argv[]) { WriteXmlFile(); return 0; }

























Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325905593&siteId=291194637