如何使用 XSLT 填充下拉列表
Posted
技术标签:
【中文标题】如何使用 XSLT 填充下拉列表【英文标题】:How do you populate a dropdownlist using XSLT 【发布时间】:2017-08-05 15:53:31 【问题描述】:我可以创建一个downdownlist。但是,我无法使用 XML 数据向其中填充任何内容。谁能帮我解决这个问题?谢谢!
这是 XML 代码
<group name="Security / PDPA">
<section name="Control" db_field_name="control_score">
<field is_admin_field="N" required="Y">
<question_title>Verify customer's details when necessary</question_title>
<type>List</type>
<db_field_name>verify_customers_details_when_necessary_control</db_field_name>
<options>
<item score="2">Yes</item>
<item score="0">No</item>
<item score="2">No with reason</item>
</options>
<db_field_length>14</db_field_length>
<additional_comment/>
</field></section></group>
这是 XSLT 代码
<select name="form">
<xsl:for-each select="form/fieldset/group/section/field/options">
<option>
<xsl:attribute name="value">
<xsl:value-of select="item"/>
</xsl:attribute>
</option>
</xsl:for-each>
</select>
【问题讨论】:
【参考方案1】:我假设您没有显示完整的 XML,因为您在 xsl:for-each
中的 Xpath 表达式正在寻找 form/fieldset/group/section/field/options
,但初始的 form
或 fieldset
都没有显示在您的 XML 中。
考虑到这一点,问题可能是因为您选择了带有xsl:for-each
的options
元素,但只有其中一个。您应该选择 item
元素,因为看起来您想为每个项目输出一个 <option>
标记
<xsl:for-each select="form/fieldset/group/section/field/options/item">
<option>
<xsl:attribute name="value">
<xsl:value-of select="@score"/>
</xsl:attribute>
<xsl:value-of select="." />
</option>
</xsl:for-each>
或者更好的是,使用属性值模板来缩短代码
<xsl:for-each select="form/fieldset/group/section/field/options/item">
<option value="@score">
<xsl:value-of select="." />
</option>
</xsl:for-each>
【讨论】:
以上是关于如何使用 XSLT 填充下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 thymeleaf 和 spring 使用列表填充下拉列表
如何使用来自 Alamofire 发布请求的 SwiftyJSON 填充下拉列表?