最近,我使用XSLT编写了一些个人程序。我很惊讶XPATH有'if then else'语句,没有'else if'。
例如,我只能使用:
if *** then ***
else ***
但我无法使用:
if *** then ***
else if *** then ***
else ***
XPath是否支持else-if语句?模拟else-if的唯一方法是嵌套if else?
答案 0 :(得分:2)
表达式,如
const myData = [{
name: 'some name',
id: 1
}, {
name: 'some name2',
id: 2
}, {
name: 'some name3',
id: 3
}, {
name: 'some name4',
id: 4
}]
const filterProductsByCategoryId = (state, id) => {
return state.find(c => c.id === id);
};
const result = filterProductsByCategoryId(myData, 2);
console.log(result);
在XPath 2.0中完全合法。
答案 1 :(得分:0)
您可以使用xsl:choose
xsl:choose元素从多个可能的元素中选择一个 备择方案。它由一个或多个
xsl:when
的序列组成 元素后跟可选的xsl:otherwise
元素。每个xsl:when
element有一个属性test,它指定一个表达式。xsl:when
和xsl:otherwise
元素的内容是一个序列 构造处理xsl:choose元素时,每个
xsl:when
元素 依次测试(即按元素出现的顺序) 样式表),直到满足xsl:when
个元素之一。如果 没有满足xsl:when
元素,那么xsl:否则 如下所述,考虑元素。
<xsl:choose>
<xsl:when test="expression1">
... some output ...
</xsl:when>
<xsl:when test="expression2">
... some output ...
</xsl:when>
<xsl:otherwise>
... some output ....
</xsl:otherwise>
</xsl:choose>