我可以创建一个下拉列表。但是,我无法使用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>
答案 0 :(得分:0)
我假设您没有显示完整的XML,因为xsl:for-each
中的Xpath表达式正在寻找form/fieldset/group/section/field/options
,但初始form
或fieldset
都不是显示在您的XML中。
考虑到这一点,问题可能是因为您选择了带有options
的{{1}}元素,但只有其中一个。{1}}。您应该选择xsl:for-each
元素,因为您希望为每个项目输出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>