statements
#END
tag | An XML tag. |
filter | A logical expression indicating which specific tag instances to process. |
statements | The Template statements to execute. |
#END | The #FOR structure terminator. |
The #FOR structure loops through the XML, searching for each instance of the tag that meets the filter expression and executes the statements on the data contained within that tag.
Example:
// This script processes XML and generates ECL COUNT statements
// which run against the datasets and filters specified in the XML.
XMLstuff :=
'<section>'+
'<item>'+
'<dataset>person</dataset>'+
'<filter>firstname = \'RICHARD\'</filter>'+
'</item>'+
'<item>'+
'<dataset>person</dataset>'+
'<filter>firstname = \'JOHN\'</filter>'+
'</item>'+
'<item>'+
'<dataset>person</dataset>'+
'<filter>firstname = \'HENRY\'</filter>'+
'</item>'+
'</section>';
LOADXML(XMLstuff);
#DECLARE(CountStr); // Declare CountStr
#SET(CountStr, '' ); // Initialize it to an empty string
#FOR(item)
#APPEND(CountStr,'COUNT(' + %'dataset'% + '(' + %'filter'% + ' ));\n');
#END
OUTPUT(%'CountStr'%); // output the string just built
%CountStr% // then execute the generated "COUNT" actions
// Note that the "CountStr" will have 3 COUNT actions in it:
// COUNT(person(person.firstname = 'RICHARD'));
// COUNT(person(person.firstname = 'JOHN'));
// COUNT(person(person.firstname = 'HENRY'));