【发布时间】:2010-10-16 16:01:13
【问题描述】:
我有一个基于 Excel 在另存为“XML Spreadsheet 2003 (*.xml)”时生成的 XML 文档。
电子表格本身包含一个带有标签层次结构的标题部分:
| A B C D E F G H I -+------------------------------------------------ ----- 1| a1 a2 2| a11 a12 a13 a21 a22 3| a111 a112 a121 a122 a131 a132 a221 a222这种层次结构存在于工作簿的所有工作表上,并且在任何地方看起来都差不多。
Excel XML 的工作方式与普通的 HTML 表格完全一样。 (<row>s 包含 <cell>s)。我已经能够把所有东西都变成这样的树形结构了:
<node title="a1" col="1">
<node title="a11" col="1">
<node title="a111" col="1"/>
<node title="a112" col="2"/>
</node>
<node title="a12" col="3">
<node title="a121" col="3" />
<node title="a122" col="4" />
</node>
<!-- and so on -->
</node>
但这里是复杂的:
- 工作表不止一个,因此每个工作表都有一棵树
- 每张表的层次结构可能略有不同,树不会相等(例如,表 2 可能有“a113”,而其他则没有)
- 树的深度没有明确限制
- 然而,标签在所有工作表中都是相同的,这意味着它们可以用于分组
我想将这些独立的树合并成一个如下所示的树:
<node title="a1">
<col on="sheet1">1</col>
<col on="sheet2">1</col>
<node title="a11">
<col on="sheet1">1</col>
<col on="sheet2">1</col>
<node title="a111">
<col on="sheet1">1</col>
<col on="sheet2">1</col>
</node>
<node title="a112">
<col on="sheet1">2</col>
<col on="sheet2">2</col>
</node>
<node title="a113"><!-- different here -->
<col on="sheet2">3</col>
</node>
</node>
<node title="a12">
<col on="sheet1">3</col>
<col on="sheet2">4</col>
<node title="a121">
<col on="sheet1">3</col>
<col on="sheet2">4</col>
</node>
<node title="a122">
<col on="sheet1">4</col>
<col on="sheet2">5</col>
</node>
</node>
<!-- and so on -->
</node>
理想情况下,我希望能够在之前进行合并,我什至从 Excel XML 构建了三个结构(如果你让我开始这样做,那就太好了)。但由于我不知道如何做到这一点,所以在构建树之后进行合并(即:上述情况)就可以了。
感谢您的宝贵时间。 :)
【问题讨论】:
-
能否请您也提供第二个xml文件,以便我看看这个问题?谢谢,
标签: xslt grouping hierarchy merge