У меня есть xml, как показано ниже,
<?xml version="1.0" encoding="utf-8"?>
<recConfig>
<drecipe>
<id>2</id>
<name>BREAD </name>
<description> </description>
<accesslevel> operator </accesslevel>
<parameter>
<parameterValue> test1</parameterValue>
<parameterValue> test2</parameterValue>
<parameterValue> test3</parameterValue>
</parameter>
</drecipe>
</recConfig>
Я хочу перевести его в op, как показано ниже с помощью xslt OP NEEDED:
('2','operator', 'test1')
('2','operator','test2')
('2','operator','test3')
Я могу генерировать до
('2','operator')
('2','operator')
('2','operator')
Я делаю что-то не так, у меня ниже xslt, я действительно новичок в XSLT и Xpath, любые рекомендации очень ценятся
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8" indent="yes" />
<xsl:template match="/recConfig">
<xsl:for-each select="drecipe">
<xsl:variable name="id" select="id" />
<xsl:variable name="accesslevel" select="accesslevel" />
<xsl:for-each select="parameter/*">
<xsl:variable name="parameterValue" select="parameterValue" />
<xsl:text>(</xsl:text>
<xsl:for-each select="$id | $accesslevel | $parameterValue">
<xsl:text>'</xsl:text>
<xsl:value-of select="normalize-space(.)"/>
<xsl:text>'</xsl:text>
<xsl:if test="position() != last()">
<xsl:text>,</xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>) </xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Я полагаю, что эта часть должна итерация по каждому дочернему узлу параметра
<xsl:for-each select="parameter/*">
И эта часть для чтения каждого значения параметра в переменную parameterValue
<xsl:variable name="parameterValue" select="parameterValue" />
Заранее спасибо