从里到外编写xml表

时间:2015-02-07 09:06:03

标签: xml xslt

我们倾向于将表视为一系列行(或列的序列)。作为证据,在HTML和LaTeX中,如果要创建表,则逐行构建它,并在每行中逐个单元构建它。如果有一个特殊功能,例如跨越多个列或行的单元格,则必须特别注意该单元格的代码。你可以说我们首先关注一个地址,然后用它来获取单元格内容。 "第2行,第3列是什么?啊,我明白了。"

我考虑以某种方式用xmlxslt翻转它。我希望将单元格内容放在第一位,并将内容引导到地址。这就像在桌子的某个地方看一个单元格,然后左右移动你的眼睛来了解内容的地址。

我希望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中写表的可行方法的受过教育的意见。

0 个答案:

没有答案