|
next
|
Subject: Change format of XML output for custom flat file conversion? Author: Peter Robert Date: 06 Jul 2009 07:23 AM
|
Hi everyone,
This is my first post here, so please don't hit me if I chose the wrong thread..
I'm currently working on a complex flat file conversion to XML (combined with a following xQuery), but I first have one questions regarding the output format of the conversion.
How can I avoid the output structure of
<region>
<row_NAME1>
<field>N1</field>
<field_NAME1>Peter</field_NAME1>
</row_NAME1>
</region>
for fixed width-structure, but instead have the values
<region>
<NAME1>Peter</NAME1> and omitting the complex structure of row, field, etc.
To explain in examples:
LHDAB 1011609010 D
is ok to output
<LETTERHEAD>
<field>LH</field>
<DOCTYPE>DAB</DOCTYPE>
<CUSTNO>101160901</CUSTNO>
<SUFFIX>0</SUFFIX>
<COUNTRY>D</COUNTRY>
</LETTERHEAD>
although I don't need the <field>LH</field>.
But then, the file continues with
N1Herr
N2Werner Lückner
A1Wiesestr. 68
A232052 Herford
A3
A4
LD#SALSTSehr geehrter Herr Lückner
LD#TITSTHerr
LD#PSTST
LD#PFXST
LD#FNMSTWerner
LD#NM1STLückner
which ideally should result in something like
<ADDRESSDETAILS>
<N1>Herr</N1>
<N2>Werner Lückert</N2>
<A1>...</A1>
...
</ADDRESSDETAILS>
and followed by
<LETTERDETAILS>
<#SALST>Sehr geehrter Herr Lückner</#SALST>
<#TITST>Herr</#TITST>
<#PSTST/>
<#PFXST/>
<#FNMST>Werner</#FNMST>
<#NM1ST>Lückner</#NM1ST>
....
</LETTERDETAILS
The current output of the Conversion is too poor to really work with it, IMHO.
Can someone please give me a hint how to achieve this in a conversion, and if this is not possible, how to do it with a xquery.
With best regards,
Peter conversion_plus_source_sample.zip CONV file plus source data ZIP
|
top
|
Subject: Change format of XML output for custom flat file conversion? Author: (Deleted User) Date: 08 Jul 2009 06:15 AM
|
Hi Peter,
a way to shape the XML in the requested format is this:
<LETTERS>
{
for $Letterheads in /root/Letterhead
return
<LETTER>
<LETTERHEAD>{$Letterheads/Typ,$Letterheads/Kundennummer,$Letterheads/Suffix,$Letterheads/Country}</LETTERHEAD>
{
let $Others := local:getOthers($Letterheads)
return
(
<ADDRESSDETAILS>{$Others/Anrede,$Others/Name,$Others/Strasse,$Others/Ort}</ADDRESSDETAILS>,
<LETTERDETAILS>{$Others/SALUTATION_FORMULA,$Others/TITLE,$Others/PSTST,$Others/FIRSTNAME,$Others/NAME1}</LETTERDETAILS>
)
}
</LETTER>
}
</LETTERS>
Hope this helps,
Alberto
|
|
|