0

我正在编写一个 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 的值

这可能吗?

4

1 回答 1

1

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

但是,您所描述的肯定并不容易,而且几乎可以肯定有更好的方法来做到这一点。

从 XML 片段来看,就像您想在 XML 文件中存储一些代码,然后在运行时“执行”它,使其能够访问 C++ 变量,如“x”和“Length”。

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

但通常,您希望在代码中保留逻辑,在 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");
于 2013-06-04T07:52:04.877 回答