Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从内到外用xml编写表_Xml_Xslt - Fatal编程技术网

从内到外用xml编写表

从内到外用xml编写表,xml,xslt,Xml,Xslt,我们倾向于将一个表看作一系列行(或一系列列)。作为证据,在HTML和LaTeX中,如果您正在创建一个表,那么您将逐行构建它,并在每一行中逐个单元格地构建它。如果有一些特殊功能,比如跨多个列或行的单元格,则必须特别注意该单元格的代码。你可以说,我们首先关注一个地址,然后用它来获取单元格内容。“第二行第三列是什么?啊,我明白了。” 我正在考虑以某种方式使用xml和xslt来实现这一点。我想把手机内容放在第一位,让内容导向地址。这就像看着表格中的某个单元格,然后左顾右盼,了解该内容的地址 我希望有xm

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

我正在考虑以某种方式使用
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>
我意识到,如果有两个单元格指向太多的类别,这将变得不可能。因此,让我们同意
xml
作者不会让事情失控


有没有人已经“破解了这颗坚果”,为类似的东西想出了
xslt
?我没有要求任何人尝试为我编写一些
xslt
。我想知道这是否是用
xml

编写表的一种可行方法,我不知道如何衡量“可行”。这当然是可能的,如果你需要的话。然而,在我看来,您的源XML可以更好地结构化:我希望看到两个类别的层次(嵌套)列表,一个是水平的,一个是垂直的。然后每个单元格值将链接到两个原子类别(即上述树中的叶节点)请注意,这并不意味着XSLT的逻辑在编写实际表时必须遵循这一内部逻辑。还有一点需要注意:在一个包含三列的表中,一个值不可能跨越这三列的任何组合:它可以是a+B或B+C,但不能是a+C。这不仅仅是一个问题“让我们同意xml作者不会让事情失控“。这需要就列的顺序达成一致,以适应给定值。由于同样的限制也适用于行,因此很快就会出现无法管理的情况。因此,如果这是一项要求,我会说不,这是不可行的。@michael.hor257k谢谢您的想法。
           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    |
      |--|----------|