У меня плоский XML, который выглядит так:
<objectDataList>
<objectData>
<equipment>
<name>Chassis-One</name>
<type>Chassis</type>
</equipment>
</objectData>
<objectData>
<equipment>
<name>Shelf-One</name>
<type>Shelf</type>
</equipment>
</objectData>
<objectData>
<equipment>
<name>Shelf-Two</name>
<type>Shelf</type>
</equipment>
</objectData>
<objectData>
<equipment>
<name>Slot-One</name>
<type>Slot</type>
</equipment>
</objectData>
Как я могу создать XSL, который преобразует мой XML в другой XML, который выглядит следующим образом:
<equipments>
<object>
<name>Chassis-One</name>
<object>
<name>Shelf-One</name>
<object>
<name>Slot-One</name>
</object>
</object>
</object>
Это как в шасси, есть 2 полки, а на Полке 1 есть слот - один ..
Я попробовал наполовину, но не мог придумать, как сделать вложенный элемент:
<xsl:template match="/response">
<equipments>
<object>
<xsl:apply-templates select="objectData"/>
</object>
</equipments>
<xsl:template match="objectData/equipment[type='Chassis']">
<name><xsl:value-of select="equipment/name"/></name>
<!-- Now I want to find the shelf according to the chassis name -->
<xsl:call-template name="find-shelf-according-to-chasis-name">
<xsl:with-param name="chassisName" select="equipment/name"/>
</xsl:call-template>
</xsl:template>
Я надеюсь, что кто-то может пролить свет
Заранее спасибо