0
我正在尝试制作一个允许用户输入搜索xml文件的网页。有多个输入,但是当提交搜索时我无法容纳空输入。默认情况下用xsl:when测试时返回所有元素?
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>
如果您发布了XSL,以显示正在应用'xsl:choose'时的上下文将会有所帮助。了解XML的外观也很有帮助。如果不知道如何应用这个,那么当没有'date'的值时,返回'true()'的表达式怎么样,以便所有东西都通过'xsl:when'的@test标准呢? –
感谢您的帮助,我已根据要求添加了样品。 – grainman
那么,你动态地构造你的XSLT,代替什么被分配给变量'datein',你现在有'xsl:when test =“date = *”'? –