2016-06-29 6 views
0

まず同じ名前を持つ要素から属性を取得し、私の英語は非常に悪いですが、私は誰かが私の問題を理解願っていますし、私を助けることができる;)XSLすべての

は、私は次の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テーブルに表示する必要があります。しかし問題はそれです。 2つの行があります。同じ名前であるが、他の値は異なる。

picture the the table 2つの行があります。名前は同じですが、他の値は異なりますので、すべての値を1つの行に設定する必要があります。ハイレベルで

+1

質問を編集して、実際に出力したいHTMLを(写真ではなくテキストとして)表示できますか?また、XSLT 1.0または2.0を使用しているかどうかを言うことができますか?ありがとうございます –

答えて

3

、概念この演習は、おそらくあなたが教えしようとしている: (ここでは、fachすべての要素)の要素の集合のすべてを処理するためapply-templates

  • 使用
  • の再帰的使用(要素特定の子を参照するために、fachと一致するテンプレートからの相対パスを使用して、ここに)要素の子または子孫を参照する相対パスを使用しますは、現在の要素のすべての子を処理します。

私はあなたがコースを取っていると思いますので、私はあなたに完全にXSLTを与えません。私はあなたが示したデータのようなデータを処理するためのXSLTスタイルシートを書いていた場合でも、私はテンプレートの三つのグループを記述します。

  1. tabletbody要素を書き込みますfachの親要素のためのテンプレート、 xsl:apply-templatesを呼び出してtbody要素の内容を生成します。

  2. fachのテンプレートは、tr要素を生成し、xsl:apply-templatesを呼び出して行の内容を生成します。

  3. いずれかfachの各可能な子供のための1つのテンプレート、またはテーブルの一つのセルのためtd要素を生成し、セルの内容を生成するxsl:apply-templatesを呼び出しmatch = "fachname | fachnummer | ... | note"ようなマッチパターンとのテンプレート。

これが役立ちます。

+0

うまくいけば、OPは役に立つガイダンスに感謝します。 – kjhughes