【发布时间】:2014-12-16 16:43:08
【问题描述】:
通常,需要使用 Excel VBA 从 XML 解析匹配某些过滤条件的输入。复杂之处在于多级 XML 属性及其配对结果,必须在 Excel 中按顺序填充。
XML 内容如下:
<Flow index="1" item="1" itemName="BB_150" ID="XXX">
<Attribute name="FUNCTIONAL_X" dataType="Double" unit="" multiplier="" tag="YY">1</Attribute>
<Attribute name="X_LOC" dataType="String" unit="" multiplier="" tag="YY">2</Attribute>
</Flow>
<Flow index="2" item="2" itemName="CC_200" ID="WWW">
<Attribute name="FUNCTIONAL_X" dataType="Double" unit="" multiplier="" tag="YY">15</Attribute>
<Attribute name="X_LOC" dataType="String" unit="" multiplier="" tag="YY">3</Attribute>
</Flow>
<Flow index="3" item="3" itemName="DD_200" ID="UUU">
<Attribute name="FUNCTIONAL_X" dataType="Double" unit="" multiplier="" tag="YY">20</Attribute>
<Attribute name="X_LOC" dataType="String" unit="" multiplier="" tag="YY">1</Attribute>
</Flow>
<Flow index="4" item="4" itemName="EE_115" ID="SSS">
<Attribute name="FUNCTIONAL_X" dataType="Double" unit="" multiplier="" tag="YY">33</Attribute>
<Attribute name="X_LOC" dataType="String" unit="" multiplier="" tag="YY">2</Attribute>
</Flow>
- 如何只读取 XML 中以 Attribute 开头的那些节点?
- 一旦所有节点都选择了属性,Excel VBA 中的进一步解析就会开始。首先,查找 name=X_LOC 并获取值。
- 然后,查找 name = FUNCTIONAL_X 并检索值。
- 现在,需要将所有这些值放入工作表“结果”的 Excel 列中。输出到 Excel 的格式如下:
列(从A列开始..然后继续到下一列..等)标题名称= X_LOC(按升序排序和显示) 行结果(以 row1..然后 row2..etc 开始)= FUNCTIONAL_X(每个配对 X_LOC)
填充到 Excel 中的结果应如下所示:
A B C D (Excel column)
1 2 3 4 (X_LOC value)
A1 B1 C1 D1 (Excel Row)
1 15 20 33 (FUNCTIONAL_X value)
注意:如果 X_LOC 重复相同的值,则什么也不做。保留现有的 X_LOC 及其 FUNCTIONAL_X 值。无需覆盖。
【问题讨论】:
标签: xml excel vba parsing multidimensional-array