我正在寫一個簡單的物理引擎,我想包括某種形式的配置文件。使用xml配置文件 - 簡單的映射方法?
當我看着xml,樹結構對我來說很有意義,並且看着libxml,它似乎很容易閱讀和修改。
我遇到的問題是我可能會如何提示它。
我的應用程序是用C編寫的,有沒有實現xml配置文件的標準約定?
爲了論點的緣故,我將設置一個示例環境。比方說,我有一個名爲foo.c的一個數據結構,看起來像這樣的文件:
typedef struct {
char* name;
float x;
float y;
}info;
和一個配置文件名爲foo.xml看起來像
<info>
<name>something</name>
<x>0</x>
<y>0</y>
</info>
和另一個類bar.c那使用libxml2將xml文件讀取到樹中。人們通常會如何填充這樣的數據結構?
我不要求替代XML
例如答案(這是我一直在思考,但我不知道這是貫徹落實正確的方式)。
bar.c具有功能:
tree* load_config(FILE* config_file);
char[][] get_fields(tree* current_tree);
你調用該函數,它返回一個樹,然後你有一個像一堆條件句:
tree* current_tree = load_config(fopen("foo.xml"));
char[][] fields = get_fields(current_tree);
if(contains(fields, "name")) {
name = current_tree->name; //i'd have to navigate through the tree to find name or something
}
我沒有要求替代方案... – Newbie
但他們可能會更好。 XML並不是很複雜,但是它的解析和處理比聽起來像你需要的要稍微重一點。 –