【发布时间】:2012-05-15 16:23:52
【问题描述】:
尝试使用 <xsl:if test="expression"> 组合一个 if 语句,我想将多个表达式放在一起,以执行操作顺序,例如这个伪代码:
if (Number != '' and (Name != '' or PreferredName != '')) {// code here}
基本上我想在<xsl:if> 中执行此操作:
<xsl:if text="Number != '' and (Name != '' or PreferredName != '')">
但我不确定expression 的语法,我认为我不能像那样做(),因为我在任何地方都没有看到它。我在网上找不到表达式语法,可能是 XPath,但我不确定 XPath 是否支持() 对表达式进行分组。我不是 XSL/XML/XSD 方面的专家,所以我不知道表达式是 XPath 还是什么。
如果可能的话,我宁愿不使用嵌套的<xsl:if> 语句,并且希望坚持使用<xsl:if> 而不是<xsl:choose>。
我确定这可能是一个简单的答案,但有点卡在这里。谢谢。
【问题讨论】:
-
你试过只使用括号吗?
-
我看的不是我的作品,我会做一个简单的例子并报告回来。
-
是的,试过了,谢谢。 “()”按预期工作。我认为它会,但同样,这不是我的代码,应该像我刚才那样单独测试它。
-
警告:如果
!=运算符的任何参数可能是节点集,请不要使用它——你会感到困惑和不受欢迎,非- 直观的结果。学会尽可能避免使用!=。而是使用:not(x = someValue).