I am able to fix this. We should be utilizing byPosition(), columnNames() expression, instead of column names.
And we can pass expressions as parameters.
two sample expressions passed as DF parameters
columnnames = toString(columnNames()[1]) + '|' + toString(columnNames()[2]) + '|' + toString(columnNames()[4]) + '|' + toString(columnNames()[5]) + '|' + toString(columnNames()[6]) + '|' + toString(columnNames()[7])
column1data = '<row>' + toString(byPosition(1) + '|' + 'testcolumn</row>'