【发布时间】:2021-02-16 00:23:28
【问题描述】:
假设我有一个 xslt 变量 $item。到处理为止,$item可能等于一个HTML标签,例如:<td><input style="width: 10em"></td>或者它可能是一个空字符串。
现在我想测试$item 是否为空。如果我做<xsl:if test="$item = ''">,那么如果$item = <td><input style="width: 10em"></td> 似乎条件成立。如何设计一个条件测试来查看$item 是否真的为空?
这是我想让它工作的示例代码。 $item 可能包含 <td><input></td> 作为输出,并且在这种情况下如果测试通过,而我不希望这样。 $item 可能根本不包含任何内容,因为模板不匹配任何内容。这里没有任何东西意味着没有<td><input></td> 或任何东西。
<xsl:variable name="item">
<xsl:apply-templates/>
</xsl:varialbe>
<xsl:if test="$item=''">
<!-- do something here -->
</xsl:if>
【问题讨论】:
-
那么如何将值绑定到变量
item,您的输入数据看起来如何?为什么变量值有时是元素节点,否则是空字符串?您确定在后一种情况下它不仅仅是一个空序列吗? -
item从模板规则处理中获取其值。它可能是空的(完全),因为模板规则根本不匹配任何东西。也可能包含<td><input></td>,由模板规则处理返回。 -
考虑显示变量绑定和可能输入的最小但完整的示例。目前还不清楚您是否只是在处理一个空序列。