XSL从具有相同名称

时间:2016-06-29 21:29:25

标签: xml xslt

首先,我的英语非常糟糕,但我希望有人能理解我的问题并能帮助我;)

我有以下xml文件

<fach>
  <fachname>Content Management Systems</fachname>
  <fachnummer>n/a</fachnummer>
  <semester>summer14</semester>
  <versuch>1</versuch>
  <note>
    5.0
  </note>
</fach>
<fach>
  <fachname>Content Management Systems</fachname>
  <fachnummer>n/a</fachnummer>
  <semester>winter15</semester>
  <versuch>2</versuch>
  <note>
    3.3
  </note>
</fach>

现在我们必须将其合并为HTML文件并在HTML表格中显示。但问题是。有两行。具有相同的名称,但其他值是不同的。

picture the the table 有两行。名称相同但其他值不同,我们必须在一行中设置所有值。

1 个答案:

答案 0 :(得分:3)

在较高的层面上,本练习可能试图教你的概念是:

  • 使用apply-templates处理所有元素(此处为所有fach元素)
  • 使用相对路径来引用子元素或元素的后代(这里,使用匹配fach的模板中的相对路径)来引用的子元素元素)
  • 递归使用apply-templates来处理当前元素的所有子元素。

我不会给你完整的XSLT,因为我希望你参加一门课程并且应该自己解决这个问题。但是如果我正在编写一个XSLT样式表来处理数据,比如你显示的数据,我会写三组模板:

  1. fach的父元素的模板,该元素将编写tabletbody元素,并调用xsl:apply-templates以生成tbody的内容{1}}元素。

  2. fach的模板,该模板将生成tr元素,并调用xsl:apply-templates以生成该行的内容。

  3. fach的每个可能子项的一个模板,或者match = "fachname | fachnummer | ... | note"匹配模式的一个模板,它为表的一个单元格生成td元素,调用xsl:apply-templates来生成单元格的内容。

  4. 我希望这会有所帮助。