Я пытаюсь преобразовать выходные данные из источника xml, как показано. Моя попытка показанаXSLT- Преобразование списка повторяющихся элементов с небольшой структурой в упорядоченный список
Вход:
<products>
<name>bananas</name>
<price>3.55</price>
<sku>1223-777-93222</sku>
<name>pineapple</name>
<price>1.25</price>
<sku>013-144-9355</sku>
</products>
Ожидаемый результат:
<orders>
<order>
<name>bananas</name>
<price>3.55</price>
<item-number>1223-777-93222</item-number>
</order>
<order>
<name>pineapple</name>
<price>1.25</price>
<item-number>013-144-9355</item-number>
</order>
</orders>
XSLT:
<xsl:choose>
<xsl:when test="name">
<order>
<name><xsl:value-of select="."/>
</xsl:when>
<xsl:when test="price">
<price><xsl:value-of select="."/></price>
</xsl:when>
<xsl:when test="sku">
<item-number><xsl:value-of select="."/></price></item-number>
</order>
<xsl:when>
<xsl:otherwise>
</orders>
</xsl:otherwise>
Однако, я не мог заставить его работать. Он не печатает то, что я ожидаю. Я был бы признателен за помощь в преобразовании вывода.
Пожалуйста, помогите, спасибо
Можете ли вы объяснить, Каков ожидаемый результат? – potame
Это то, что ожидалось: бананы 3,55 1223-777-93222 элемент-номер> ананаса 1.25 013-144-9355номер позиции> –
BreenDeen
Ваш код не должен загружаться. XSL должен быть хорошо сформированным XML, и вы не можете закрыть тэг заказов в теге xsl: иначе. XSL должен использовать рекурсию, а не итеративную или линейную логику. – Mike