05-18-2022 09:16 AM
HI,
I have an xml file that has multiple child arrays within it.
I’m struggling to get it into a flat format for export to csv, could someone spread a little snap love on this and help 🙂
xml looks like this
<?xml version="1.0" encoding="utf-8"?> <FLEET>
<ZMI_PM_S_OUTPUT_FLEET_LIST>
<V_FLEET>
<FLEET_NUM>SKBMI823EJ</FLEET_NUM>
<EQUNR>000000000010014880</EQUNR>
<ERDAT>2017-09-18</ERDAT>
<ERNAM>DB21016</ERNAM>
<EQASP>E</EQASP>
<AEDAT>2021-10-01</AEDAT>
</V_FLEET>
<KSSK>
<ZMI_PM_S_FLEET_LIST_KSSK>
<KSSK_H>
<OBJEK>000000000010014880</OBJEK>
<MAFID>O</MAFID>
<KLART>002</KLART>
<CLINT>0000027802</CLINT>
<ZAEHL>20</ZAEHL>
<STATU>1</STATU>
</KSSK_H>
<AUSP>
<API_VAL_R>
<CHARACT>PM_ARB_A_BSTNR</CHARACT>
<VALUE>10934902</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_BSTPO</CHARACT>
<VALUE>140</VALUE>
</API_VAL_R>
</AUSP>
</ZMI_PM_S_FLEET_LIST_KSSK>
<ZMI_PM_S_FLEET_LIST_KSSK>
<KSSK_H>
<OBJEK>000000000010014880</OBJEK>
<MAFID>O</MAFID>
<KLART>002</KLART>
<CLINT>0000027803</CLINT>
<ZAEHL>10</ZAEHL>
<STATU>1</STATU>
</KSSK_H>
<AUSP>
<API_VAL_R>
<CHARACT>PM_ARB_A_AC_MAN</CHARACT>
<VALUE>WEBASTO ATHEMIA</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_ADVERT_FRAMES</CHARACT>
<VALUE>No</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_CCTV</CHARACT>
<VALUE>No</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_CURRENT_REG_DT</CHARACT>
<VALUE>26.01.2017</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_EMISSIONS</CHARACT>
<VALUE>16.08.2019</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_ENG_EURO_NORM</CHARACT>
<VALUE>EURO VI</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_GPS</CHARACT>
<VALUE>No</VALUE>
</API_VAL_R>
<API_VAL_R>
<CHARACT>PM_ARB_A_MAN_DT</CHARACT>
<VALUE>26.01.2017</VALUE>
</API_VAL_R>
</AUSP>
</ZMI_PM_S_FLEET_LIST_KSSK>
</KSSK>
</ZMI_PM_S_OUTPUT_FLEET_LIST>
</FLEET>
if it helps “OBJEK” in <KSSK_H> is related to “EQUNR” in <V_FLEET>
Many thanks
05-18-2022 09:22 AM
Hi @bourner,
Did you try using a JSON splitter already?
05-18-2022 11:52 PM
Hi Yes,
I’ve tried a JSON splitter.
I’ve tried to flatten both parts and then join them together. The V_Fleet xml element/objects are easy enough,
the KSSK part I’m unable to flatten
Thanks
05-19-2022 12:03 AM
Try this pipeline (I don’t know what kind of CSV you want but it may be a start).
12465_xml-to-flatten-csv_2022_05_19.slp (12.3 KB)
I’m using two JSON Splitters here:
and
The Mapper has basic flattening rules:
You’ll end up with an output that looks like this:
05-19-2022 03:40 AM
That’s great,
I have a slight problem in that the actual xml also had some additional levels
<asx:abap version=“1.0” xmlns:asx=“ABAP Development”>
asx:values
Example xml here
</asx:values>
</asx:abap>
As soon as I use this xml it fails. Could you possibly point me in the right direction, and possibly explain what it’s doing ?
Apologies, I’m new to SL.
Thanks