我有 xml 数据,例如:
<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 可以在每个子节点内。节点只能在子节点内。
我想把它变成一个像这样的表格:
+-----------+-----+-----+-----+
| 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>
我至少得到了数据中所有元素的列表。但该列表并不明确。
我发现了这一点,但无法将其应用于我的需求。
有什么建议么?