Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hello
I have a xml where i have to extract nested fields inside my products and put them into one field.
here is the example
<izdelki>
<izdelek st="2">
<izdelekID>001068</izdelekID>
<VendorItemNo.>C31C163272</VendorItemNo.>
<WarrantyCustomer>12M</WarrantyCustomer>
<izdelekIme><![CDATA[Blagajniški matrični tiskalnik EPSON TM-U295]]></izdelekIme>
<opis><![CDATA[Združite kakovost in prilagodljivost z najmanjšim tiskalnikom potrdil na svetu.]]></opis>
<url><![CDATA[https://www.avtera.si/cat/product/001068]]></url>
<dodatneLastnosti>
<lastnost naziv="Število iglic"><![CDATA[Linijski]]></lastnost>
<lastnost naziv="Število iglic dodatno"><![CDATA[, 7-iglični ]]></lastnost>
<lastnost naziv="Povezljivost"><![CDATA[Serijski]]></lastnost>
<lastnost naziv="Tiskanje več kopij"><![CDATA[1 izvirnik + 2 kopiji]]></lastnost>
<lastnost naziv="Hitrost tiskanja"><![CDATA[1,90 ~ 2,30 vrstic/s]]></lastnost>
<lastnost naziv="Podajanje papirja"><![CDATA[spredaj noter, spredaj ven]]></lastnost>
<lastnost naziv="Neskončni papir"><![CDATA[ne]]></lastnost>
<lastnost naziv="Tabela znakov"><![CDATA[437]]></lastnost>
<lastnost naziv="Mere (Š x V x G)"><![CDATA[180? x 102 x 1091 mm]]></lastnost>
<lastnost naziv="Teža"><![CDATA[1,6 kg]]></lastnost>
<lastnost naziv="Dodatne informacije"><![CDATA[ni priložen omrežni del (PS-180)]]></lastnost>
<lastnost naziv="Garancija v mesecih"><![CDATA[12]]></lastnost>
</dodatneLastnosti>
<dodatneSlike />
<cenaAkcijska />
<davcnaStopnja>22</davcnaStopnja>
<kategorija id="TI">Tiskalniki</kategorija>
<blagovnaZnamka id="E1">EPSON</blagovnaZnamka>
<skupinaIzdelka id="MA">Matrični tiskalniki</skupinaIzdelka>
<dobava id="1">ni zaloge</dobava>
<zaloga>0</zaloga>
<EAN>8715946319667</EAN>
</izdelek>
<izdelek st="3">
<izdelekID>001068</izdelekID>
<VendorItemNo.>C31C163272</VendorItemNo.>
<WarrantyCustomer>12M</WarrantyCustomer>
<izdelekIme><![CDATA[Blagajniški matrični tiskalnik EPSON TM-U295]]></izdelekIme>
<opis><![CDATA[Združite kakovost in prilagodljivost z najmanjšim tiskalnikom potrdil na svetu.]]></opis>
<url><![CDATA[https://www.avtera.si/cat/product/001068]]></url>
<dodatneLastnosti>
<lastnost naziv="Število iglic"><![CDATA[Linijski]]></lastnost>
<lastnost naziv="Število iglic dodatno"><![CDATA[, 7-iglični ]]></lastnost>
<lastnost naziv="Povezljivost"><![CDATA[Serijski]]></lastnost>
<lastnost naziv="Tiskanje več kopij"><![CDATA[1 izvirnik + 2 kopiji]]></lastnost>
<lastnost naziv="Hitrost tiskanja"><![CDATA[1,90 ~ 2,30 vrstic/s]]></lastnost>
<lastnost naziv="Podajanje papirja"><![CDATA[spredaj noter, spredaj ven]]></lastnost>
<lastnost naziv="Neskončni papir"><![CDATA[ne]]></lastnost>
<lastnost naziv="Tabela znakov"><![CDATA[437]]></lastnost>
<lastnost naziv="Mere (Š x V x G)"><![CDATA[180? x 102 x 1091 mm]]></lastnost>
<lastnost naziv="Teža"><![CDATA[1,6 kg]]></lastnost>
<lastnost naziv="Dodatne informacije"><![CDATA[ni priložen omrežni del (PS-180)]]></lastnost>
<lastnost naziv="Garancija v mesecih"><![CDATA[12]]></lastnost>
</dodatneLastnosti>
<dodatneSlike />
<cenaAkcijska />
<davcnaStopnja>22</davcnaStopnja>
<kategorija id="TI">Tiskalniki</kategorija>
<blagovnaZnamka id="E1">EPSON</blagovnaZnamka>
<skupinaIzdelka id="MA">Matrični tiskalniki</skupinaIzdelka>
<dobava id="1">ni zaloge</dobava>
<zaloga>0</zaloga>
<EAN>8715946319667</EAN>
</izdelek>
</izdelki>
So I have 2 entities izdelek, where I have to get almost all the fields, but for the <dodatneLastnosti> there are <lastnost > inside
I need to get the
all sthe elements and merge them and put into one field
So he end result would be:
Število iglic: Linijski
Število iglic dodatno: 7-iglični
Povezljivost: Serijski
Tiskanje več kopij: 1 izvirnik + 2 kopiji
etc.
the problem is that thsi attriutes can vary therefore I just need to loop trough and merge.
I hope I was clear.
Any suggestions?
Thank you.
If I have understood you correctly, you want an output like this.......
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Število iglic: Linijski
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Število iglic dodatno: , 7-iglični
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Povezljivost: Serijski
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Tiskanje več kopij: 1 izvirnik + 2 kopiji
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Hitrost tiskanja: 1,90 ~ 2,30 vrstic/s
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Podajanje papirja: spredaj noter, spredaj ven
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Neskončni papir: ne
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Tabela znakov: 437
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Mere (Š x V x G): 180? x 102 x 1091 mm
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Teža: 1,6 kg
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Dodatne informacije: ni priložen omrežni del (PS-180)
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Garancija v mesecih: 12
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Število iglic: Linijski
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Število iglic dodatno: , 7-iglični
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Povezljivost: Serijski
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Tiskanje več kopij: 1 izvirnik + 2 kopiji
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Hitrost tiskanja: 1,90 ~ 2,30 vrstic/s
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Podajanje papirja: spredaj noter, spredaj ven
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Neskončni papir: ne
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Tabela znakov: 437
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Mere (Š x V x G): 180? x 102 x 1091 mm
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Teža: 1,6 kg
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Dodatne informacije: ni priložen omrežni del (PS-180)
001068|Blagajniški matrični tiskalnik EPSON TM-U295|Garancija v mesecih: 12
Obviously, some of the data is missing as I didn't collect every field....just 2 fields within the the outer loops and then the dodatneLastnosti data.
I did it like this....
The tFileInputXML is configured like this....
Notice the "Loop XPath query" is set to the outer loop. When extracting the data inside that, notice that I am asking to "Get Nodes" from the dodatneLastnosti element.
In the tExtractXMLField component, I am setting the XML Field to be the dodatneLastnosti data we extracted in the last component. The Loop XPath query is set to the sub-XML represented by that data.
I then leave the columns I extracted previously empty in the XPath query columns, but add a new query to the dodatneLastnosti column (in orange) and add a new column called "naziv" to get the attribute. See the value in the green box.
After this is done, the dodatneLastnosti and naziv columns are simply merged using a tMap.
Hello. Thanks for this.
Yeah kind of... although all the "dodatne lastnosti" have to be merged into one string
so the outcome is
001068|Blagajniški matrični tiskalnik EPSON TM-U295| " Število iglic: Linijski Število iglic dodatno: , 7-iglični Povezljivost: Serijski "
Could be separated by \r\n or ; or smth
I can do this with group element I think
Menaged to do it. I added tAggregateRow to concatenate all the stings. Thank you very much for this