我们倾向于将表视为一系列行(或列的序列)。作为证据,在HTML和LaTeX中,如果要创建表,则逐行构建它,并在每行中逐个单元构建它。如果有一个特殊功能,例如跨越多个列或行的单元格,则必须特别注意该单元格的代码。你可以说我们首先关注一个地址,然后用它来获取单元格内容。 "第2行,第3列是什么?啊,我明白了。"
我考虑以某种方式用xml
和xslt
翻转它。我希望将单元格内容放在第一位,并将内容引导到地址。这就像在桌子的某个地方看一个单元格,然后左右移动你的眼睛来了解内容的地址。
我希望xml
来源可能是这样的:
<table>
<category-type-A id="plants">Plants you eat</category-type-A>
<category-type-A id="fruit" A="plants">Fruit</category-type-A>
<category-type-A id="veg" A="plants">Vegetables</category-type-A>
<category-type-B id="colors">Colors</category-type-B>
<category-type-B id="red" B="colors">Red</category-type-B>
<category-type-B id="green" B="colors">Green</category-type-B>
<cell A="fruit" B="red">Strawberry</cell>
<cell A="veg" B="red">Beet</cell>
<cell A="fruit" B="green">Guava</cell>
<cell A="veg" B="green">Broccoli</cell>
<cell A="fruit;veg" B="red">Tomato</cell>
<cell A="fruit" B="red;green">Apple</cell>
<cell A="fruit">Orange</cell>
</table>
使用xslt进行翻译后,最终得到一个(至少)HTML的表格(忽略样式,只考虑细胞分割和定位):
Plants you eat
|---------------------|
| Fruit |Vegetables|
|--|---------------------|
|R |Strawberry|Beet |
|e |---------------------|
|d |Tomato |
| |---------------------|
C | |A | |
o | |p | |
l |--|p |----------|
o |G |l |Broccoli |
r |r |e | |
s |e |----------|----------|
|e |Guava |
|n | |
|--|----------|
| |Orange |
|--|----------|
我意识到如果有两个单元格指向太多类别,这将变得不可能。因此,让我们同意xml
作者不会让事情失控。
有没有人已经破解了这个坚果&#39;,只要提出xslt
类似的东西?我并没有要求任何人试图为我写一些xslt
。我想知道有关这是否是xml
中写表的可行方法的受过教育的意见。