【发布时间】:2011-07-28 09:37:02
【问题描述】:
首先,我有一个包含递归父子元素的 XML 文件。以下是 XML 的外观:
<VARS>
<VAR>
<id>var_starting_point</id>
<name>Starting Point</name>
<values>
<value>
<id>http://Environment1URL.com</id>
<name>Enviornment 1</name>
<sub_vars>
<VAR>
<id>var_env1_data</id>
<name>Env1 Data</name>
<values>
<value>
<name>Data1</name>
<sub_var>
<VAR>
<id>var_db</id>
<name>DB</name>
<values>
<values>place-holder 1</values>
</values>
</VAR>
</sub_var>
</value>
<value>
<name>Data2</name>
<sub_var>
<VAR>
<id>var_db</id>
<name>DB</name>
<values>
<values>place-holder 2</values>
</values>
</VAR>
</sub_var>
</value>
</values>
</VAR>
</sub_vars>
</value>
<value>
<id>http://Environment2URL.com</id>
<name>Enviornment 2</name>
<sub_vars>
<VAR>
<id>var_env2_data</id>
<name>Env2 Data</name>
<values>
<value>
<name>Data1</name>
<sub_var>
<VAR>
<id>var_db</id>
<name>DB</name>
<values>
<values>place-holder 1</values>
</values>
</VAR>
</sub_var>
</value>
<value>
<name>Data2</name>
<sub_var>
<VAR>
<id>var_db</id>
<name>DB</name>
<values>
<values>place-holder 2</values>
</values>
</VAR>
</sub_var>
</value>
</values>
</VAR>
</sub_vars>
</value>
</values>
</VAR>
<VAR>
<id>var_version_data1</id>
<name>Data1 Version</name>
<values>
<value>
<name>1.1.1</name>
</value>
</values>
</VAR>
<VAR>
<id>var_version_data2</id>
<name>Data2 Version</name>
<values>
<value>
<name>2.2.2</name>
</value>
</values>
</VAR>
</VARS>
我有一个 VARS 元素,其中包含 1 个或多个具有 id、名称和
包含 1 个或多个值元素的值数组。
value 元素的 sub_var 和 id 元素是可选的,名称
元素不是。 sub_var 包含与 VARS 完全相同的内容
等等。
现在我想根据在 父组合框。 例如,如果用户从 起始点组合框,比 Env1 数据组合框应该产生 Env1 值。然后如果用户选择“Data1”,那么 DB 组合框 应填充“占位符 1”。
我已经为此工作了好几个小时,但我一无所获。我能够得到 1 层非递归工作,但是多个嵌套元素让我头疼。 我现在这样做的方法是将所选项目保存到临时变量,然后在我的选择更改事件处理程序上清除我的堆栈面板并根据最后选择的内容重新创建所有组合框。但是,这似乎不适用于多个嵌套元素。
我只是在寻找想法以及您将如何解决这个问题。
【问题讨论】: