Hi! I have a XML text node which contains random integers between 1 and 10 and are separated by LF(0x0a). I convert this text node into a string and use jcs:break-lines() to put those numbers into a node-set. This means, that eventually I have an object like this:
(sdb) print $int_ns [node-set] (10) <text>8</text> <text>8</text> <text>2</text> <text>1</text> <text>2</text> <text>9</text> <text>3</text> <text>4</text> <text>7</text> <text>1</text> (sdb) Now I want to process only the first three integers which are less than 5. As I understand, for-each loop does not support breaking out from the loop so I did it like this: $ cat read_part_of_node-set.slax version 1.2; main <top> { var $int := { <text> 8; <text> 8; <text> 2; <text> 1; <text> 2; <text> 9; <text> 3; <text> 4; <text> 7; <text> 1; } var $int_ns := $int/*; mvar $n; set $n = 1; mvar $m; set $m = 1; while ( $m < 4 ) { if ( $int_ns[number($n)] < 5 ) { <output> $int_ns[number($n)]; set $m = $m + 1; } set $n = $n + 1; } } $ slaxproc -g -E read_part_of_node-set.slax <?xml version="1.0"?> <top> <output>2</output> <output>1</output> <output>2</output> </top> $ Just wondering, maybe there is a more elegant solution for this? thanks, Martin _______________________________________________ juniper-nsp mailing list juniper-nsp@puck.nether.net https://puck.nether.net/mailman/listinfo/juniper-nsp