xslt - 编程技巧

时间:2012-11-05 11:39:53

标签: xml xslt xslt-1.0

有关Oliver Beckers关于xslt编程的有效方法的问题link.

我们知道使用此代码,我们可以消除详细的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"))
)

将导致语法错误。

1 个答案:

答案 0 :(得分: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时,输出

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

但是当应用于此XML时,输出

<root>
   <othernode>Test</othernode>
</root>