私は次のようなxml-Dataを持っています:
<rootNode>
<subNode name="sn1">
<node name="field2" value="23"/>
<node name="field4" value="24"/>
</subNode>
<subNode name="sn2">
<node name="field2" value="39"/>
</subNode>
<subNode name="sn3">
<subNode name="f1">
<node name="field2" value="23"/>
<node name="field4" value="24"/>
</subNode>
<node name="field2" value="23"/>
<node name="field8" value="24"/>
</subNode>
</rootNode>
ノードの深さは無限です。sunNode は、すべての subNode 内に配置できます。node は subNode 内にのみ存在できます。
そして、それを次のようなテーブルに変換したいと思います。
+-----------+-----+-----+-----+
| Field | sn1 | sn2 | sn3 |
|-----------+-----+-----+-----+
|field2 | 23 | 39 | 23 |
|-----------+-----+-----+-----+
|field4 | 24 | n/a | n/a |
|-----------+-----+-----+-----+
|field8 | n/a | n/a | 24 |
|-----------+-----+-----+-----+
|f1->field2 | n/a | n/a | 23 |
|-----------+-----+-----+-----+
|f1->field4 | n/a | n/a | 24 +
+-----------+-----+-----+-----+
したがって、すべての「サブノード」内で可能なすべての「ノード」を検索し、それぞれの行を作成する必要があります。次に、top-SubNode のエントリがあれば、その値を表示します。
と
<xsl:for-each select="subNode//node()">
<tr>
<td><xsl:value-of select="@name"/></td>
</tr>
</xsl:for-each>
少なくとも、データに含まれるすべての要素のリストを取得します。しかし、そのリストは明確ではありません。
これを見つけましたが、私のニーズには適用できません。
助言がありますか?