XML根据变化的参数/变量获取值

时间:2013-06-04 07:40:15

标签: c++ xml

我正在编写一个XML文件,我需要根据条件指定一些参数值,这取决于我的应用程序在运行时将分配的参数。

像这样的事情

<?xml version = "1.0" encoding="UTF-8" standalone="yes"?>
<IF x >= 3>
<THEN> <Length>4</Length></THEN>
<ELSE> <Length>5</Length></ELSE>
</IF>

我需要在每次查询长度值时从我的qt c ++应用程序设置x的值

这可能吗?

1 个答案:

答案 0 :(得分:1)

嗯,这是软件,所以一切皆有可能......

但是,你所描述的当然不容易,而且几乎肯定有更好的方法。

从XML片段中,您可能希望将某些代码存储在XML文件中,然后在运行时“执行”它,使其可以访问“x”和“Length”等C ++变量。

可以通过在你的应用程序中嵌入(例如)Lua解释器,将C ++对象,函数和变量绑定到Lua,然后在其中存储Lua'片段'来实现这一点一个XML文件。一切皆有可能,但是相当大的工作。这是非常强大的,因此可能不安全和危险。

但通常,您希望在代码中保留逻辑,并在XML中保留数据。所以值“3”,“4”和“5”可能是数据,但解释如何使用它们的代码属于C ++

 <xLength testValue="3" resultGt="4" resultLe="5"/>

C ++伪代码 -

int testValue = xml.getAttr("testValue");
if (x >=  testValue)
   Length = xml.getAttr("resultGt");
else 
   Length = xml.getAttr("resultLe");