我试图创建一个允许用户输入搜索xml文件的网页。有多个输入,但在提交搜索时我无法容纳空输入。
var date = rDateSearch.value;
if (date === "") {
var datein = "date=*";
}
else {
var datein = "date=" + date";
}
' date'然后将变量发送到xsl:when
测试。我希望xsl:when
返回所有日期值。
有办法做到这一点吗?我目前的想法并不奏效。
这是我的xml示例:
<record>
<name>John Smith</name>
<date>1972</date>
<rating>0.5</rating>
</record>
这是我的xsl。我不确定此代码的适用性。
<xsl:for-each select="records/record">
<xsl:choose>
<xsl:when test ="name=*">
<xsl:choose>
<xsl:when test ="date=*">
<xsl:choose>
<xsl:when test ="rating=*">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="date"/></td>
<td><xsl:value-of select="rating"/></td>
</tr>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:for-each>
答案 0 :(得分:2)
如果用户未指定值来过滤名称,日期或评级,并且您试图找出将选择任何/所有的表达式,您可以使用:
xsl:when test="date"
将&#34;通过&#34;测试,只要在date
中评估的record
元素中有xsl:for-each
个元素。
或者,您可以使用:
xsl:when test="true()"
无论是否有日期元素,都会评估为真。
同样的逻辑适用于其他元素。