我正在编写一个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的值
这可能吗?
答案 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");