用python解析xml的几种方法,python xml转json文件
sln文件简介Visual Studio使用解决方案文件(后缀为sln的文件)来表示一个项目团队,通常包含一个项目中工程文件的所有信息。了解sln文件格式可以手动修改错误的sln文件,对于解析sln文件也有一定的帮助。
Sln文件是一个文本文件。虽然它没有使用最流行的XML文件标识,但是它的数据结构和XML文件类似,基本上都是由节组成,一个节由标签和End plus标签定义。例如,如果项目信息被标记为项目,则它们由项目和最终项目定义。每个部分都可以有自己的属性,子部分可以嵌套在部分中。子节的名称由tag plus部分标识,然后在名称后面加上一个括号,记录该子节的意义。例如,代表项目依赖关系的子部分是项目部分(项目依赖关系)。子节也可以有属性,但是子节的属性都是用一个等式来表示的。
sln文件组件的文本版本
在Visual Studio 2017中,是这句话:
Microsoft Visual Studio解决方案文件,格式版本12.00
工程信息
这些信息包括解决方案中项目的组件及其相互依赖关系。每个项目都分别包含在project和EndProject中,如下例所示:
Project({8BC9…C942})=Qb , Qb\Qb.vcproj , { 315B…BD44 } project section(project dependencies)=post project { 8503…f1d 6 }={ 8e 9…f1d 6 } { b8e 9…E045 }={ b8e 9…E045 } { 13e 7…f0b 6 }={ 13e 7…f0b 6 } { F51A…9635 }={ F51A…9635 }
项目有三个属性,由逗号分隔成三个部分:
第一部分(“{8BC9.C942})=Qb ,表示项目名称。8BC9.“C942}”是一个固定值,后跟等号。在大多数情况下,项目名称和项目文件名是相同的。第二部分是工程文件,是解决方案文件的相对路径。第三部分是项目的GUID,解决方案通过它来标识项目。它将在以后的依赖项和编译配置中使用。
信息中的子部分由ProjectSection表示,括号中的标记ProjectDependencies表示项目的依赖项目。该子部分的属性是依赖项目的GUID。等式两边的GUIDs是相同的。有多少依赖项目,就有多少GUID方程。
全局设置
全局标志是全局的,通常有用的子部分包括SourceCodeControl、SolutionConfiguration和ProjectConfiguration。
SourceCodeControl在SourceSafe中记录解决方案的信息。
首先是Scc的基本信息,通常有四行属性,如下:
SccNumberOfProjects=6 scccloalpath 0=。CanCheckoutShared=true solution uniqueid={ 6 CFC 75 cc-2b 14-4617-B1CA-D7 CDB 52e 9773 }
请注意,SccNumberOfProjects比包含的项目数多1。
有时,有两个额外的属性SccProjectName和SccProvider,它们在大多数情况下都是无用的,如下所示:
SccNumberOfProjects=132 sccprojectname 0=\ u 0022 $/V-Fit \ u 0022,\ u0020YKAAAAAA SccLocalPath0=。SCC provider 0=MSSCCI:Microsoft \ u 0020 visual \ u 0020 source safe CanCheckoutShared=true solutionuniqueid={ 6 CFC 75 cc-2b 14-4617-B1CA-D7 CDB 52e 9773 }
接下来,每四行代表SourceSafe中项目的信息,如下所示:
sccprojectuniquename 1=QB \ \ QB . vcproj SCC local path 1=。canchecoushared=TrueSCCprojectFilePathLatized from connection 1=QB \ \请注意,这些属性后面有一个数字标记。这是哪个项目属性?
有时有一个额外的属性SccProjectName,而scclocalpath不是当前路径,但是这些信息都不是太有用。
sccprojectuniquename 1=Qb \ \ Qb . vcproj sccprojectname 1=\ u 0022Qb/\ u 0022,\ u 0020 ihkaaaaa scclocalpath 1=QbCanCheckoutShared=true sccprojectfilepathrelatizedfromconnection 1=Qb \
SolutionConfiguration记录解决方案的可用编译版本。例如,你通常可以看到
在VS2013中,调试=调试发布=发布
在VS2017版本中global section(SolutionConfigurationPlatforms)=1预解决调试Win32=调试Win32调试x86=调试x86发布Win32=发布Win32发布x86=发布x86结束全球部分
项目配置记录了工程可用的编译版本对于解决方案配置中指定的某些没有编译版本则指定可替代的编译版,比如
在VS2013版本中{ 876 a 6148-EC66-4d D2-BC82-b 61 CAC 2049 AC }。调试。active CFG=Debug Win32 { 876 a 6148-EC66-4d D2-BC82-b 61 CAC 2049 AC }。调试。建造。0=调试 Win32 { 876 a 6148-EC66-4d D2-BC82-b 61 CAC 2049 AC } .
在VS2017版本中
全球部分(项目配置平台)=后解决方案{ 23d 8d 42 c-D711-4c 04-BBDF-50 b 68 e 1c a83c } .调试Win32 .active CFG=Debug Win32 { 23d 8d 42 c-D711-4c 04-BBDF-50 b 68 e 1c a83c } .调试Win32 .建造。0=调试 Win32 { 23d 8d 42 c-D711-4c 04-BBDF-50 b 68 E1 ca 83 c } .调试x86 .active CFG=Debug Win32 { 23d 8d 42 c-D711-4c 04-BBDF-50 b 68 e 1c a83c } .调试x86 .建造。0=调试 Win32 { 23d 8d 42 c-D711-4c 04-BBDF-50 b 68 E1 ca 83 c } .版本Win32 .active CFG=Release Win32 { 23d 8d 42c-D711-4c 04-BBDF-50 b 68 e 1c a83c } .版本Win32 .建造。0=版本 Win32 { 23d 8d 42 c-D711-4c 04-BBDF-50 b 68 E1 ca 83 c } .发布x86 .active CFG=Release Win32 { 23d 8d 42c-D711-4c 04-BBDF-50 b 68 e 1c a83c } .发布x86 .建造。0=版本 Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .调试Win32 .active CFG=Debug Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .调试Win32 .建造。0=Debug Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .调试x86 .active CFG=Debug Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .调试x86 .建造。0=Debug Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .版本Win32 .active CFG=Release Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .版本Win32 .建造。0=版本 Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .发布x86 .active CFG=Release Win32 { ABA 05890-6f 82-4004-BAE 2-FAE 0 BC 69 D4 A8 } .发布x86 .建造。0=版本 Win32 .调试Win32 .active CFG=Debug Win32 .调试Win32 .建造。0=调试 Win32 { e1f 23 da 7-357 e-408 e-98 D1-72490664848 e } .调试x86 .active CFG=Debug Win32 .调试x86 .建造。0=调试 Win32 { e1f 23 da 7-357 e-408 e-98 D1-72490664848 e } .版本Win32 .active CFG=Release Win32 .版本Win32 .建造。0=版本 Win32 .发布x86 .active CFG=Release Win32 .发布x86 .建造。0=Release Win32结束全局部分
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。