0

在此链接上有关 xslt 编程的 Oliver Beckers 有效方法的问题。

我们知道,使用这段代码,我们可以消除冗长的 xsl 选择方法

concat(
substring(Str1,1 div Cond),
substring(Str2,1 div not(Cond))
)

但是我们可以在“条件”中指定什么,只是为了检查节点的存在或不存在?

我们无法指定

concat(
substring(Str1,1 div test="/node"),
substring(Str2,1 div not(test="/node"))
)

这将引发语法错误。

4

1 回答 1

2

试试这个表达式(其中node是您要测试的节点的名称):

<xsl:value-of select="concat(
   substring('Yes', 1 div not(not(/root/node))), 
   substring('No', 1 div not(/root/node)))"/>

或者更好

<xsl:value-of select="concat(
   substring('Yes', 1 div boolean(/root/node)), 
   substring('No', 1 div not(/root/node)))"/>

应用于此 XML 时,输出Yes

<root>
   <node>Test</node>
</root>

但是当应用于这个 XML 时,输出No

<root>
   <othernode>Test</othernode>
</root>
于 2012-11-05T14:32:11.017 回答