Я работаю с xsl файл, который используется для создания полей формы. Мне нужно проверить, совпадает ли значение параметра с выбранным значением и добавить выбранный атрибут в это поле. Это код для создания вариантов (все работает здесь, и параметры создаются динамически):XSL - проверьте, равен ли атрибут выбранному значению
<xsl:when test="@type='select'">
<xsl:attribute name="title">Select List</xsl:attribute>
<xsl:apply-templates select=".">
<xsl:with-param name="field_id" select="$field_id" />
<xsl:with-param name="field_type" select="@type" />
<xsl:with-param name="isEditing" select="$isEditing" />
</xsl:apply-templates>
<xsl:element name="div">
<xsl:attribute name="id"><xsl:value-of select="$field_id" /></xsl:attribute>
<xsl:attribute name="type">select</xsl:attribute>
<xsl:attribute name="class">field ui-select</xsl:attribute>
<xsl:element name="select">
<xsl:attribute name="name"><xsl:value-of select="$field_id" /></xsl:attribute>
<xsl:attribute name="id"><xsl:value-of select="$field_id" /></xsl:attribute>
<xsl:attribute name="data-native-menu">false</xsl:attribute>
<xsl:attribute name="size">1</xsl:attribute>
<xsl:attribute name="required">
<xsl:choose>
<xsl:when test="@required='required'">required</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="onchange">CustomJS.manageDropdownSelect(this)</xsl:attribute>
<xsl:attribute name="data-value">
<xsl:choose>
<xsl:when test="@data-value!=''">
<xsl:value-of select="@data-value" /></xsl:when>
</xsl:choose>
</xsl:attribute>
<xsl:for-each select="./options/option">
<xsl:element name="option">
<xsl:attribute name="value">
<xsl:value-of select="." />
</xsl:attribute>
<xsl:value-of select="." />
<xsl:if test="@data-value='@value'">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
<!-- field data -->
<xsl:element name="input">
<xsl:attribute name="id">field_id</xsl:attribute>
<xsl:attribute name="type">hidden</xsl:attribute>
<xsl:attribute name="class">fielddata</xsl:attribute>
<xsl:attribute name="value"><xsl:value-of select="concat($field_id,':',@type)" /></xsl:attribute>
</xsl:element>
</xsl:when>
Это та часть, которая добавляет данных-значение:
<xsl:attribute name="data-value">
<xsl:choose>
<xsl:when test="@data-value!=''">
<xsl:value-of select="@data-value" /></xsl:when>
</xsl:choose>
</xsl:attribute>
И это часть, которая отвечает за параметры:
<xsl:for-each select="./options/option">
<xsl:element name="option">
<xsl:attribute name="value">
<xsl:value-of select="." />
</xsl:attribute>
<xsl:value-of select="." />
<xsl:if test="@data-value='@value'">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
</xsl:element>
</xsl:for-each>
Мне нужно, чтобы понять это, как подключить этот раздел с выбранным значением:
<xsl:if test="@data-value='@value'">
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
Любые идеи?
EDIT
Пример кода XML я получаю:
<field type="select" name="" id="select_0" data-value="List 14" required="false">
<options>
<option>List 1</option>
<option>List 12</option>
<option>List 13</option>
<option>List 14</option>
<option>List 12</option>
<option>List 125</option>
</options>
</field>
Просто чтобы подтвердить ...Вы говорите, что теги '
Да, все параметры создаются без каких-либо проблем, а выбор - правильно получать данные (на основе выбранной опции). – Sasha