Subject:XSL Test for lack of XML element Author:Lisa Harris Date:10 Dec 2012 08:34 AM
I've got an xsl file that runs business rules against xml data. One of them doesn't work, and I found from deconstructing it and checking the xml that the one field, when blank, does not appear in the xml (this being the one below where I'm testing for a blank value).
xsl:when test="($ScoreDecision = 1 or $ScoreDecision = 2) and //res:NewFields/res:UD_SCORECARD = 7 and //CO/SCX_DB_CURRMONTHPAYDEX = '' and ($CreditAmount > 9999.99 or //CO/UD_MONTHS_IN_BUSINESS < 60)"
How can I rewrite this when test to check for the lack of element SCX_DB_CURRMONTHPAYDEX -- so if it doesn't appear at all in the xml that this when test will return a positive result?
Thanks for any help -- kinda new at this and I'm stumped.
Subject:XSL Test for lack of XML element Author:Ivan Pedruzzi Date:10 Dec 2012 11:52 AM
The following expression returns true if the element does not exist
not(//CO/SCX_DB_CURRMONTHPAYDEX )
The expressions you have posted look suspicious. A path starting with // means to look in the entire document for CO/SCX_DB_CURRMONTHPAYDEX which could be very expensive to evaluate.
A more selective path like CO/SCX_DB_CURRMONTHPAYDEX would held a better performance, assuming that the context node is the direct ancestor of the node you are looking for.