Reputation: 1091
A question on Oliver Beckers efficient methods on xslt programming at this link.
We know that using this code, we can eliminate verbose xsl choose method
concat(
substring(Str1,1 div Cond),
substring(Str2,1 div not(Cond))
)
However what can we specify in 'condition', just to check for presence or absence of nodes?
we cannot specify
concat(
substring(Str1,1 div test="/node"),
substring(Str2,1 div not(test="/node"))
)
which will throw syntax errors.
Upvotes: 0
Views: 777
Reputation: 70598
Try this expression (where node is the name of the node you want to test):
<xsl:value-of select="concat(
substring('Yes', 1 div not(not(/root/node))),
substring('No', 1 div not(/root/node)))"/>
Or better still
<xsl:value-of select="concat(
substring('Yes', 1 div boolean(/root/node)),
substring('No', 1 div not(/root/node)))"/>
When applied to this XML, then Yes is output
<root>
<node>Test</node>
</root>
But when applied to this XML, the No is output
<root>
<othernode>Test</othernode>
</root>
Upvotes: 2