2013-06-04 51 views
0

我在寫一個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的值?

+0

你應該說明你的值在XML文件中,並且您的應用程序應該保留選擇其中一個的邏輯。 –

回答

1

嗯,這是軟件,所以一切皆有可能......

不過,你描述的內容肯定是不容易的,而且幾乎可以肯定有這樣做的更好的方法。

從XML片段來看,它就像您想要將一些代碼存儲在XML文件中,然後在運行時「執行」它,從而允許它訪問像'x'和'Length'這樣的C++變量。

可以通過嵌入(例如)Lua解釋在您的應用程序,結合C++對象,函數和變量到Lua,然後存儲在XML文件中Lua的「片斷」做到這一點。所有可能的,但一個非常大的工作。這是非常強大的,因此可能不安全和危險。

但通常情況下,您希望將代碼中的邏輯和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");