• C++ —— Tinyxml2在Vs2017下相关使用2(较文1更复杂,附源码)


    相关链接

    C++ —— Tinyxml2在Vs2017下相关使用1(附源码)

    tinyxml2简介

         TinyXML2是一个简单,小巧,高效,C++XML解析器,可以很容易地集成到其他程序中。TinyXML-2解析一个XML文档,并从中构建一个 可以读取、修改和保存的文档对象模型 (DOM)。XML代表“可扩展标记语言”。这是一个通用目的 用于描述任意数据的人类和机器可读标记语言。 为存储应用程序数据而创建的所有随机文件格式都可以 全部替换为 XML。一个解析器可以解决所有问题。

    源码下载

         Github - Tinyxml2源码下载地址

         一般来说,下载源码后无需编译仅将其中的tinyxml2.cpp、tinyxml2.h包含在自己的项目中就可以使用了。
         (若需构建库使用CMake构建源码,然后利用Vs仅编译tinyxml2项目。)

    使用tinyxml2注意事项

         TinyXML与实体

    TinyXML认得预定义的特殊“字符实体”,即:
    	& &
    	< <
    	> >
    	" "
    	' ‘
    这些在XML文档读取时都会被辨认出来,并会被转化成等价的UTF-8字符。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    代码写入xml
    
    <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <ItemGroup Label="ProjectConfigurations">
            <ProjectConfigurations Include="Debug|X64">
                <Configuration>DebugConfiguration>
                <Platform>x64Platform>
            ProjectConfigurations>
            <ProjectConfiguration Include="Release|X64">
                <Configuration>ReleaseConfiguration>
                <Platform>x64Platform>
            ProjectConfiguration>
        ItemGroup>
        <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props"/>
        <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props"/>
        <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
            <Import Project="$(QtMsBuild)\qt_defaults.props"/>
        ImportGroup>
        <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'" Label="QtSettings">
            <QtInstall>5.12.4(64)QtInstall>
            <QtModules>core;gui;widgets;network;QtModules>
            <QtBuildConfig>debugQtBuildConfig>
        PropertyGroup>
        <Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
            <Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly."/>
        Target>
        <ImportGroup Label="ExtensionSettings"/>
        <ImportGroup Label="Shared"/>
        <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
            <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform"/>
            <Import Project="$(QtMsBuild)\Qt.props"/>
        ImportGroup>
        <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'" Label="Configuration">
            <ClCompile>
                <TreatWChar_tAsBuiltInType>trueTreatWChar_tAsBuiltInType>
                <MultiProcessorCompilation>trueMultiProcessorCompilation>
                <DebugInformationFormat>NoneDebugInformationFormat>
                <Optimization>MaxSpeedOptimization>
            ClCompile>
            <Link>
                <SubSystem>ConsoleSubSystem>
                <GenerateDebugInformation>falseGenerateDebugInformation>
            Link>
        ItemDefinitionGroup>
    Project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    #include 
    #include "tinyxml/tinyxml2.h"
    
    int main()
    {
    #if 0 // 写入
    	tinyxml2::XMLDocument xml;
    	xml.Parse("");
    	tinyxml2::XMLElement* rootNode = xml.NewElement("Project");
    	rootNode->SetAttribute("DefaultTargets", "Build");
    	rootNode->SetAttribute("ToolsVersion", "15.0");
    	rootNode->SetAttribute("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003");
    	xml.InsertEndChild(rootNode);
    	{
    		tinyxml2::XMLElement *element_ItemGroup = xml.NewElement("ItemGroup");
    		element_ItemGroup->SetAttribute("Label", "ProjectConfigurations");
    		rootNode->InsertEndChild(element_ItemGroup);
    		{
    			tinyxml2::XMLElement *element_ProjectConfiguration = xml.NewElement("ProjectConfigurations");
    			element_ProjectConfiguration->SetAttribute("Include", "Debug|X64");
    			element_ItemGroup->InsertEndChild(element_ProjectConfiguration);
    			{
    				tinyxml2::XMLElement *element_ProjectConfiguration_Configuration = xml.NewElement("Configuration");
    				element_ProjectConfiguration_Configuration->InsertNewText("Debug");
    				element_ProjectConfiguration->InsertEndChild(element_ProjectConfiguration_Configuration);
    			}
    			{
    				tinyxml2::XMLElement *element_ProjectConfiguration_Platform = xml.NewElement("Platform");
    				element_ProjectConfiguration_Platform->InsertNewText("x64");
    				element_ProjectConfiguration->InsertEndChild(element_ProjectConfiguration_Platform);
    			}
    		}
    		{
    			tinyxml2::XMLElement *element_ProjectConfiguration = xml.NewElement("ProjectConfiguration");
    			element_ProjectConfiguration->SetAttribute("Include", "Release|X64");
    			element_ItemGroup->InsertEndChild(element_ProjectConfiguration);
    			{			
    				tinyxml2::XMLElement *element_ProjectConfiguration_Configuration = xml.NewElement("Configuration");
    				element_ProjectConfiguration_Configuration->InsertNewText("Release");
    				element_ProjectConfiguration->InsertEndChild(element_ProjectConfiguration_Configuration);
    			}
    			{
    				tinyxml2::XMLElement *element_ProjectConfiguration_Platform = xml.NewElement("Platform");
    				element_ProjectConfiguration_Platform->InsertNewText("x64");
    				element_ProjectConfiguration->InsertEndChild(element_ProjectConfiguration_Platform);
    			}
    		}
    	}
    
    	{
    		tinyxml2::XMLElement *element_Import = xml.NewElement("Import");
    		element_Import->SetAttribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.Default.props");
    		rootNode->InsertEndChild(element_Import);
    	}
    
    	{
    		tinyxml2::XMLElement *element_Import = xml.NewElement("Import");
    		element_Import->SetAttribute("Project", "$(VCTargetsPath)\\Microsoft.Cpp.props");
    		rootNode->InsertEndChild(element_Import);
    	}
    
    	{
    		tinyxml2::XMLElement *element_ImportGroup = xml.NewElement("ImportGroup");
    		element_ImportGroup->SetAttribute("Condition", "Exists('$(QtMsBuild)\\qt_defaults.props')");
    		{
    			tinyxml2::XMLElement *element_Import = xml.NewElement("Import");
    			element_Import->SetAttribute("Project", "$(QtMsBuild)\\qt_defaults.props");
    			element_ImportGroup->InsertEndChild(element_Import);
    		}
    		rootNode->InsertEndChild(element_ImportGroup);
    	}
    
    	{
    		tinyxml2::XMLElement *element_PropertyGroup = xml.NewElement("PropertyGroup");
    		element_PropertyGroup->SetAttribute("Condition", "'$(Configuration)|$(Platform)' == 'Debug|x64'");
    		element_PropertyGroup->SetAttribute("Label", "QtSettings");
    		{
    			{
    				tinyxml2::XMLElement *element_QtInstall = xml.NewElement("QtInstall");
    				element_QtInstall->InsertNewText("5.12.4(64)");
    				element_PropertyGroup->InsertEndChild(element_QtInstall);
    			}
    			{
    				tinyxml2::XMLElement *element_QtModules = xml.NewElement("QtModules");
    				element_QtModules->InsertNewText("core;gui;widgets;network;");
    				element_PropertyGroup->InsertEndChild(element_QtModules);
    			}
    			{
    				tinyxml2::XMLElement *element_QtBuildConfig = xml.NewElement("QtBuildConfig");
    				element_QtBuildConfig->InsertNewText("debug");
    				element_PropertyGroup->InsertEndChild(element_QtBuildConfig);
    			}
    		}
    		rootNode->InsertEndChild(element_PropertyGroup);
    	}
    
    	{
    		tinyxml2::XMLElement *element_Target = xml.NewElement("Target");
    		element_Target->SetAttribute("Name", "QtMsBuildNotFound");
    		element_Target->SetAttribute("BeforeTargets", "CustomBuild;ClCompile");
    		element_Target->SetAttribute("Condition", "!Exists('$(QtMsBuild)\\qt.targets') or !Exists('$(QtMsBuild)\\qt.props')");
    		{
    			tinyxml2::XMLElement *element_Message = xml.NewElement("Message");
    			element_Message->SetAttribute("Importance", "High");
    			element_Message->SetAttribute("Text", "QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly.");
    			element_Target->InsertEndChild(element_Message);
    		}
    		rootNode->InsertEndChild(element_Target);
    	}
    
    	{
    		tinyxml2::XMLElement *element_ImportGroup = xml.NewElement("ImportGroup");
    		element_ImportGroup->SetAttribute("Label", "ExtensionSettings");
    		rootNode->InsertEndChild(element_ImportGroup);
    	}
    
    	{
    		tinyxml2::XMLElement *element_ImportGroup = xml.NewElement("ImportGroup");
    		element_ImportGroup->SetAttribute("Label", "Shared");
    		rootNode->InsertEndChild(element_ImportGroup);
    	}
    
    	{
    		tinyxml2::XMLElement *element_ImportGroup = xml.NewElement("ImportGroup");
    		element_ImportGroup->SetAttribute("Label", "PropertySheets");
    		element_ImportGroup->SetAttribute("Condition", "'$(Configuration)|$(Platform)' == 'Debug|x64'");
    		rootNode->InsertEndChild(element_ImportGroup);
    		{
    			tinyxml2::XMLElement *element_Import = xml.NewElement("Import");
    			element_Import->SetAttribute("Project", "$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props");
    			element_Import->SetAttribute("Condition", "exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')");
    			element_Import->SetAttribute("Label", "LocalAppDataPlatform");
    			element_ImportGroup->InsertEndChild(element_Import);
    		}
    		{
    			tinyxml2::XMLElement *element_Import = xml.NewElement("Import");
    			element_Import->SetAttribute("Project", "$(QtMsBuild)\\Qt.props");
    			element_ImportGroup->InsertEndChild(element_Import);
    		}
    	}
    
    	{
    		tinyxml2::XMLElement *element_ItemDefinitionGroup = xml.NewElement("ItemDefinitionGroup");
    		element_ItemDefinitionGroup->SetAttribute("Condition", "'$(Configuration)|$(Platform)' == 'Release|x64'");
    		element_ItemDefinitionGroup->SetAttribute("Label", "Configuration");
    		{
    			{
    				tinyxml2::XMLElement *element_ClCompile = xml.NewElement("ClCompile");
    				element_ItemDefinitionGroup->InsertEndChild(element_ClCompile);
    				{
    					tinyxml2::XMLElement *element_TreatWChar_tAsBuiltInType = xml.NewElement("TreatWChar_tAsBuiltInType");
    					element_TreatWChar_tAsBuiltInType->InsertNewText("true");
    					element_ClCompile->InsertEndChild(element_TreatWChar_tAsBuiltInType);
    				}
    				{
    					tinyxml2::XMLElement *element_TreatWChar_MultiProcessorCompilation = xml.NewElement("MultiProcessorCompilation");
    					element_TreatWChar_MultiProcessorCompilation->InsertNewText("true");
    					element_ClCompile->InsertEndChild(element_TreatWChar_MultiProcessorCompilation);
    				}
    				{
    					tinyxml2::XMLElement *element_DebugInformationFormat = xml.NewElement("DebugInformationFormat");
    					element_DebugInformationFormat->InsertNewText("None");
    					element_ClCompile->InsertEndChild(element_DebugInformationFormat);
    				}
    				{
    					tinyxml2::XMLElement *element_Optimization = xml.NewElement("Optimization");
    					element_Optimization->InsertNewText("MaxSpeed");
    					element_ClCompile->InsertEndChild(element_Optimization);
    				}
    			}
    			{
    				tinyxml2::XMLElement *element_Link = xml.NewElement("Link");
    				element_ItemDefinitionGroup->InsertEndChild(element_Link);
    				{
    					tinyxml2::XMLElement *element_SubSystem = xml.NewElement("SubSystem");
    					element_SubSystem->InsertNewText("Console");
    					element_Link->InsertEndChild(element_SubSystem);
    				}
    				{
    					tinyxml2::XMLElement *element_GenerateDebugInformation = xml.NewElement("GenerateDebugInformation");
    					element_GenerateDebugInformation->InsertNewText("false");
    					element_Link->InsertEndChild(element_GenerateDebugInformation);
    				}
    			}
    		}
    		rootNode->InsertEndChild(element_ItemDefinitionGroup);
    	}
    
    	xml.SaveFile("./temp_behaviac.xml");
    	xml.Clear();
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193

    代码读取xml

    在这里插入图片描述

    int main()
    {
    	tinyxml2::XMLDocument xml;
    	tinyxml2::XMLError errXml = xml.LoadFile("./temp_behaviac.xml");
    	if (tinyxml2::XML_SUCCESS == errXml)
    	{
    		tinyxml2::XMLElement* root = xml.RootElement();
    		if (root)
    		{
    			std::cout << root->Value()
    				<< " DefaultTargets=" << root->Attribute("DefaultTargets")
    				<< " ToolsVersion=" << root->Attribute("ToolsVersion")
    				<< " xmlns=" << root->Attribute("xmlns") << std::endl;
    
    			tinyxml2::XMLElement *XMLElement_ItemGroup = root->FirstChildElement();
    			if (XMLElement_ItemGroup)
    			{
    				std::cout << "\t" << XMLElement_ItemGroup->Value() << " Label=" << XMLElement_ItemGroup->Attribute("Label") << std::endl;
    				{
    					tinyxml2::XMLElement *XMLElement_ProjectConfigurations = XMLElement_ItemGroup->FirstChildElement();
    					if (!XMLElement_ProjectConfigurations) { return -1; }
    					std::cout << "\t\t" << XMLElement_ProjectConfigurations->Value() << " Include=" << XMLElement_ProjectConfigurations->Attribute("Include") << std::endl;
    					{
    						tinyxml2::XMLElement *XMLElement_Configuration = XMLElement_ProjectConfigurations->FirstChildElement();
    						if (!XMLElement_Configuration) { return -1; }
    						std::cout << "\t\t\t" << XMLElement_Configuration->Value() << " " << XMLElement_Configuration->GetText() << std::endl;
    
    						tinyxml2::XMLElement *XMLElement_Platform = XMLElement_Configuration->NextSiblingElement();
    						if (!XMLElement_Platform) { return -1; }
    						std::cout << "\t\t\t" << XMLElement_Platform->Value() << " " << XMLElement_Platform->GetText() << std::endl;
    					}
    
    					tinyxml2::XMLElement *XMLElement_ProjectConfiguration = XMLElement_ProjectConfigurations->NextSiblingElement();
    					if (!XMLElement_ProjectConfiguration) { return -1; }
    					std::cout << "\t\t" << XMLElement_ProjectConfiguration->Value() << " Include=" << XMLElement_ProjectConfiguration->Attribute("Include") << std::endl;
    					{
    						tinyxml2::XMLElement *XMLElement_Configuration = XMLElement_ProjectConfiguration->FirstChildElement();
    						if (!XMLElement_Configuration) { return -1; }
    						std::cout << "\t\t\t" << XMLElement_Configuration->Value() << " " << XMLElement_Configuration->GetText() << std::endl;
    
    						tinyxml2::XMLElement *XMLElement_Platform = XMLElement_Configuration->NextSiblingElement();
    						if (!XMLElement_Platform) { return -1; }
    						std::cout << "\t\t\t" << XMLElement_Platform->Value() << " " << XMLElement_Platform->GetText() << std::endl;
    					}
    				}
    
    				tinyxml2::XMLElement *XMLElement_Import = XMLElement_ItemGroup->NextSiblingElement();
    				if (!XMLElement_Import) { return -1; }
    				std::cout << "\t" << XMLElement_Import->Value() << " Project=" << XMLElement_Import->Attribute("Project") << std::endl;
    
    				tinyxml2::XMLElement *XMLElement_Import2 = XMLElement_Import->NextSiblingElement();
    				if (!XMLElement_Import2) { return -1; }
    				std::cout << "\t" << XMLElement_Import2->Value() << " Project=" << XMLElement_Import2->Attribute("Project") << std::endl;
    
    				tinyxml2::XMLElement *XMLElement_ImportGroup = XMLElement_Import2->NextSiblingElement();
    				if (!XMLElement_ImportGroup) { return -1; }
    				std::cout << "\t" << XMLElement_ImportGroup->Value() << " Condition=" << XMLElement_ImportGroup->Attribute("Condition") << std::endl;
    				{
    					tinyxml2::XMLElement *XMLElement_Import = XMLElement_ImportGroup->FirstChildElement();
    					if (!XMLElement_Import) { return -1; }
    					std::cout << "\t\t" << XMLElement_Import->Value() << " Project=" << XMLElement_Import->Attribute("Project") << std::endl;
    				}
    
    				tinyxml2::XMLElement *XMLElement_PropertyGroup = XMLElement_ImportGroup->NextSiblingElement();
    				if (!XMLElement_PropertyGroup) { return -1; }
    				std::cout << "\t" << XMLElement_PropertyGroup->Value() << " Condition=" << XMLElement_PropertyGroup->Attribute("Condition") << " Label=" << XMLElement_PropertyGroup->Attribute("Label") << std::endl;
    				{
    					tinyxml2::XMLElement *XMLElement_QtInstall = XMLElement_PropertyGroup->FirstChildElement();
    					if (!XMLElement_QtInstall) { return -1; }
    					std::cout << "\t\t" << XMLElement_QtInstall->Value() << " " << XMLElement_QtInstall->GetText() << std::endl;
    
    					tinyxml2::XMLElement *XMLElement_QtModules = XMLElement_QtInstall->NextSiblingElement();
    					if (!XMLElement_QtModules) { return -1; }
    					std::cout << "\t\t" << XMLElement_QtModules->Value() << " " << XMLElement_QtModules->GetText() << std::endl;
    
    					tinyxml2::XMLElement *XMLElement_QtBuildConfig = XMLElement_QtModules->NextSiblingElement();
    					if (!XMLElement_QtBuildConfig) { return -1; }
    					std::cout << "\t\t" << XMLElement_QtBuildConfig->Value() << " " << XMLElement_QtBuildConfig->GetText() << std::endl;
    				}
    
    				tinyxml2::XMLElement *XMLElement_Target = XMLElement_PropertyGroup->NextSiblingElement();
    				if (!XMLElement_Target) { return -1; }
    				std::cout << "\t" << XMLElement_Target->Value() << " Name=" << XMLElement_Target->Attribute("Name") << " BeforeTargets=" << XMLElement_Target->Attribute("BeforeTargets") << " Condition=" << XMLElement_Target->Attribute("Condition") << std::endl;
    				{
    					tinyxml2::XMLElement *XMLElement_Message = XMLElement_Target->FirstChildElement();
    					if (!XMLElement_Message) { return -1; }
    					std::cout << "\t\t" << XMLElement_Message->Value() << " Importance=" << XMLElement_Message->Attribute("Importance") << " Text=" << XMLElement_Message->Attribute("Text") << std::endl;
    				}
    
    				tinyxml2::XMLElement *XMLElement_ImportGroup1 = XMLElement_Target->NextSiblingElement();
    				if (!XMLElement_ImportGroup1) { return -1; }
    				std::cout << "\t" << XMLElement_ImportGroup1->Value() << " Label=" << XMLElement_ImportGroup1->Attribute("Label") << std::endl;
    
    				tinyxml2::XMLElement *XMLElement_ImportGroup2 = XMLElement_ImportGroup1->NextSiblingElement();
    				if (!XMLElement_ImportGroup2) { return -1; }
    				std::cout << "\t" << XMLElement_ImportGroup2->Value() << " Label=" << XMLElement_ImportGroup2->Attribute("Label") << std::endl;
    
    				tinyxml2::XMLElement *XMLElement_ImportGroup3 = XMLElement_ImportGroup2->NextSiblingElement();
    				if (!XMLElement_ImportGroup3) { return -1; }
    				std::cout << "\t" << XMLElement_ImportGroup3->Value() << " Label=" << XMLElement_ImportGroup3->Attribute("Label") << " Condition=" << XMLElement_ImportGroup3->Attribute("Condition") << std::endl;
    				{
    					tinyxml2::XMLElement *XMLElement_Import = XMLElement_ImportGroup3->FirstChildElement();
    					if (!XMLElement_Import) { return -1; }
    					std::cout << "\t\t" << XMLElement_Import->Value() << " Project=" << XMLElement_Import->Attribute("Project") << " Condition=" << XMLElement_Import->Attribute("Condition") << " Label=" << XMLElement_Import->Attribute("Label") << std::endl;
    
    					tinyxml2::XMLElement *XMLElement_Import2 = XMLElement_Import->NextSiblingElement();
    					if (!XMLElement_Import2) { return -1; }
    					std::cout << "\t\t" << XMLElement_Import2->Value() << " Project=" << XMLElement_Import2->Attribute("Project") << std::endl;
    				}
    
    				tinyxml2::XMLElement *XMLElement_ItemDefinitionGroup = XMLElement_ImportGroup3->NextSiblingElement();
    				if (!XMLElement_ItemDefinitionGroup) { return -1; }
    				std::cout << "\t" << XMLElement_ItemDefinitionGroup->Value() << " Condition=" << XMLElement_ItemDefinitionGroup->Attribute("Condition") << " Label=" << XMLElement_ItemDefinitionGroup->Attribute("Label") << std::endl;
    				{
    					tinyxml2::XMLElement *XMLElement_ClCompile = XMLElement_ItemDefinitionGroup->FirstChildElement();
    					if (!XMLElement_ClCompile) { return -1; }
    					std::cout << "\t" << XMLElement_ClCompile->Value() << std::endl;
    					{
    						tinyxml2::XMLElement *XMLElement_TreatWChar_tAsBuiltInType = XMLElement_ClCompile->FirstChildElement();
    						if (!XMLElement_TreatWChar_tAsBuiltInType) { return -1; }
    						std::cout << "\t\t" << XMLElement_TreatWChar_tAsBuiltInType->Value() << " " << XMLElement_TreatWChar_tAsBuiltInType->GetText() << std::endl;
    
    						tinyxml2::XMLElement *XMLElement_MultiProcessorCompilation = XMLElement_TreatWChar_tAsBuiltInType->NextSiblingElement();
    						if (!XMLElement_MultiProcessorCompilation) { return -1; }
    						std::cout << "\t\t" << XMLElement_MultiProcessorCompilation->Value() << " " << XMLElement_MultiProcessorCompilation->GetText() << std::endl;
    
    						tinyxml2::XMLElement *XMLElement_DebugInformationFormat = XMLElement_MultiProcessorCompilation->NextSiblingElement();
    						if (!XMLElement_DebugInformationFormat) { return -1; }
    						std::cout << "\t\t" << XMLElement_DebugInformationFormat->Value() << " " << XMLElement_DebugInformationFormat->GetText() << std::endl;
    
    						tinyxml2::XMLElement *XMLElement_Optimization = XMLElement_DebugInformationFormat->NextSiblingElement();
    						if (!XMLElement_Optimization) { return -1; }
    						std::cout << "\t\t" << XMLElement_Optimization->Value() << " " << XMLElement_Optimization->GetText() << std::endl;
    					}
    
    					tinyxml2::XMLElement *XMLElement_Link = XMLElement_ClCompile->NextSiblingElement();
    					if (!XMLElement_Link) { return -1; }
    					std::cout << "\t" << XMLElement_Link->Value() << std::endl;
    					{
    						tinyxml2::XMLElement *XMLElement_SubSystem = XMLElement_Link->FirstChildElement();
    						if (!XMLElement_SubSystem) { return -1; }
    						std::cout << "\t\t" << XMLElement_SubSystem->Value() << " " << XMLElement_SubSystem->GetText() << std::endl;
    
    						tinyxml2::XMLElement *XMLElement_GenerateDebugInformation = XMLElement_SubSystem->NextSiblingElement();
    						if (!XMLElement_GenerateDebugInformation) { return -1; }
    						std::cout << "\t\t" << XMLElement_GenerateDebugInformation->Value() << " " << XMLElement_GenerateDebugInformation->GetText() << std::endl;
    					}
    				}
    			}
    		}
    		root = nullptr;
    	}
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155

    笔者

    笔者 - jxd

  • 相关阅读:
    DRM全解析 —— CRTC详解(3)
    vscode使用ssh连接远程Ubuntu服务器(记录)
    基于C语言设计的植物大战僵尸小游戏
    Redis 读写分离和哨兵机制
    【无标题】
    数据治理之数据标准
    开源生态企业反哺GitLink确实开源创新服务--DevOps引擎合作
    JAVA班主任管理系统(源代码+论文)
    软件测试有哪些原则?
    100天精通Python(可视化篇)——第108天:Pyecharts绘制多种炫酷词云图参数说明+代码实战
  • 原文地址:https://blog.csdn.net/automoblie0/article/details/133879796