65.9K
CodeProject 正在变化。 阅读更多。
Home

一个基于 STL 的 XML 配置工具

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.19/5 (9投票s)

2004年7月28日

1分钟阅读

viewsIcon

73220

downloadIcon

887

写入多个枚举配置条目。

引言

在一个应用程序中,我需要一种简单的方法来读取和写入配置文件到文件。此外,我需要将不同的设置嵌套在一起,以便更好地表示数据之间的关系。XML似乎是解决方案。由于我对XML一无所知,我在CodeProject上找到了两篇很棒的文章:在XML中读取和写入应用程序参数来自Arnaud Brejon,以及基于STL的简单XML解析器由David Hubbard编写。

使用这段代码的问题是它无法使用相同的配置键名称,这会导致需要枚举。我之前使用枚举来处理不同的键,在使用INI文件之前。如果你需要删除键,这真的很难看,因为你必须更改删除键之后整个键的枚举。解决方案是一个允许使用相同键名称的配置工具。许多开发者似乎有相同的需求,所以我希望这篇文章能有所帮助。

我所做的只是添加一些小代码,并围绕Arnoud Brejon的ParamIO类编写一个包装类。使用相同的条目名称写入的数据嵌入到XML Nodes属性中。

使用代码

你所需要的只是实际包装ParamIO对象的XmlConfig类。

    XmlConfig aParam;
    aParam.write( "Test:Blub:SecondNode", "Whatever" );
    aParam.AddAttributeString( "Test:FirstNode:Blub:SomeAttrib", 
            "stringAttrib = \"SomeValue\" intVal = \"12345\"", 0 );
    aParam.AddAttributeString( "Test:FirstNode:Blub:SomeAttrib", 
            "stringAttrib = \"SomeOtherValue\" intVal = \"12345678\"", 0 );
    aParam.writeFile( "c:\\Blub.xml" );

已经包含了一种类型检查(但尚未处理)。解析器解释intVal中的“int”来确定值的类型。如果未找到匹配(或受支持)的类型,则假定为普通的字符串。

© . All rights reserved.