I have the following XML,I need to transform it to fixed length flat file
<IDataXMLCoder version="1.0">
<record javaclass="com.wm.data.ISMemDataImpl">
<value name="fileName">H_MonsantoNSCINVOIC</value>
<idatacodable name="iDocList" javaclass="com.wm.adapter.sap.idoc.IDataDocumentList">
<array name="iDocs" type="idatacodable" depth="1">
<idatacodable javaclass="com.wm.adapter.sap.idoc.IDataDocument">
<record name="iDocControl" javaclass="com.wm.data.ISMemDataImpl">
<value name="TABNAM">EDI_DC40</value>
<value name="MANDT">100</value>
<value name="DOCNUM">0000000308010466</value>
<value name="DOCREL">700</value>
<value name="STATUS">30</value>
<value name="DIRECT">1</value>
<value name="OUTMOD">2</value>
<value name="EXPRSS"></value>
<value name="TEST"></value>
<value name="IDOCTYP">INVOIC02</value>
<value name="CIMTYP"></value>
<value name="MESTYP">INVOIC</value>
<value name="MESCOD">MON</value>
<value name="MESFCT">BE</value>
<value name="STD"></value>
<value name="STDVRS"></value>
<value name="STDMES">INVOIC</value>
<value name="SNDPOR">SAPQ12</value>
<value name="SNDPRT">LS</value>
<value name="SNDPFC"></value>
<value name="SNDPRN">DE_Q12_100</value>
<value name="SNDSAD"></value>
<value name="SNDLAD"></value>
<value name="RCVPOR">WM_MONSANT</value>
<value name="RCVPRT">LS</value>
<value name="RCVPFC">LS</value>
<value name="RCVPRN">MONSANTOBE</value>
<value name="RCVSAD"></value>
<value name="RCVLAD"></value>
<value name="CREDAT">2011-06-22</value>
<value name="CRETIM">06:23:57</value>
<value name="REFINT"></value>
<value name="REFGRP"></value>
<value name="REFMES"></value>
<value name="ARCKEY"></value>
<value name="SERIAL">20110428112753</value>
</record>
<array name="segments" type="idatacodable" depth="1">
<idatacodable javaclass="com.wm.adapter.sap.idoc.IDataSegment">
<value name="name">E1EDK01</value>
<record name="fields" javaclass="com.wm.data.ISMemDataImpl">
<value name="CURCY">EUR</value>
<value name="HWAER">EUR</value>
<value name="WKURS">1.00000</value>
<value name="ZTERM">F600</value>
<value name="KUNDEUINR">ESA38362760</value>
<value name="EIGENUINR">ESA08046799</value>
<value name="BSART">INVO</value>
<value name="BELNR">0098046324</value>
<value name="NTGEW">360.000</value>
<value name="BRGEW">371.880</value>
<value name="GEWEI">KGM</value>
<value name="RECIPNT_NO">0001605141</value>
<value name="FKTYP">L</value>
</record>
</idatacodable> </array>
</idatacodable>
</array>
</idatacodable>
<value name="$rfcname">IDOC_INBOUND_ASYNCHRONOUS</value>
<value name="serverName">DE_Q12_100</value>
<value name="$call">true</value>
<value name="$encoding">ISO-8859-1</value>
<value name="$tid">0AAFC4410C104E018A7D069D</value>
<value name="$action">1</value>
<value name="sender">DE_Q12_100</value>
<value name="receiver">MONSANTOBE</value>
<value name="msgType">INVOIC</value>
<record name="transportParams" javaclass="com.wm.util.Values">
</record>
</record>
</IDataXMLCoder>
this is an example this type of record fields are there in the original input for 200 times and some of the value name are equal and some are different. Please guide me so that I can try for the whole input file
the output will look like
EDI_DC40 1000000000308010466700 3012 INVOIC02 INVOIC MONBE INVOICSAPQ12 LS DE_Q12_100 WM_MONSANTLSLSMONSANTOBE 2011-06-2206:23:57 20110428112753
E2EDK01005 100000000030801046600000100000001 EUREUR1.00000 F600 ESA38362760 ESA08046799 INVO0098046324 360.000 371.880 KGM 0001605141 L
there are two column only.please refer the input file each value is having fixed length,you can set any value,I will change after that.
Please help.....