05-12-2022 10:37 PM
Hi,
I’m trying to create a pipeline which suppose to create an xml file out of a CSV file.
CSV file looks like -
|ProductCode|ProductName|Price|Country|
|A001|DellLaptop|$400|US|
|A001|DellLaptop|$500|AU|
|A001|DellLaptop|$550|EU|
XML output should be -
<?xml version="1.0" encoding="UTF-8"?> US $400 AU $500 EU $550 [XML file attached as its not coming well in the question well..] Thanks for your answer, Deepak Shaw [Product.zip|attachment](upload://7NZiA8X09vabLf1eK3iLKeLDU5f.zip) (203 Bytes)Solved! Go to Solution.
05-20-2022 02:39 PM
Just a small change in your Mapper needed:
That will output JSON like:
[{
"Invoice": {
"@xmlns:cac": "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2",
"@xmlns:cbc": "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2",
"@xmlns": "urn:oasis:names:specification:ubl:schema:xsd:Invoice-2",
"cbc:CustomizationID": "urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0",
"cbc:ProfileID": "urn:fdc:peppol.eu:2017:poacc:billing:01:1.0",
"cbc:ID": "PRP100418",
"cbc:IssueDate": "29/04/2022",
"cbc:DueDate": "6/05/2022",
"cbc:InvoiceTypeCode": "380",
"cbc:Note": "110535 - DAF - XRef607 ICT Services - CRM Developer",
"cbc:DocumentCurrencyCode": "AUD",
"InvoiceLines": [{
"LineNumber": "1",
"Tax": "700"
}, {
"LineNumber": "2",
"Tax": "700"
}],
"ABNValue": "ABN 31 100 103 268"
}
}]
which the XML Formatter will turn into:
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>PRP100418</cbc:ID>
<cbc:IssueDate>29/04/2022</cbc:IssueDate>
<cbc:DueDate>6/05/2022</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:Note>110535 - DAF - XRef607 ICT Services - CRM Developer</cbc:Note>
<cbc:DocumentCurrencyCode>AUD</cbc:DocumentCurrencyCode>
<InvoiceLines>
<LineNumber>1</LineNumber>
<Tax>700</Tax>
</InvoiceLines>
<InvoiceLines>
<LineNumber>2</LineNumber>
<Tax>700</Tax>
</InvoiceLines>
<ABNValue>ABN 31 100 103 268</ABNValue>
</Invoice>
which is what I believe you wanted.
05-18-2022 08:23 AM
I just want to be clear - you want to drop the values for ProduceCode
and ProductName
(e.g. A001
and DellLaptop
respectively) from the eventual XML, correct? The only values you want to keep are Price
and Country
, yes?
05-18-2022 05:51 PM
Yes @robin , Thats correct
05-13-2022 11:03 AM
I don’t believe your XML was attached correctly - please try again
05-18-2022 02:24 AM
Hi @deepak.shaw ,
I have attached a sample pipeline and sample CSV file that I am using for processing.
In the XML Generator snap, if you click the button Edit XML, you can see some logic in there.
Please have a look and let me know if it helps you.
Regards,
Marjan
csv sample.txt (112 Bytes)
CSV_TO_XML_2022_05_18.slp (6.7 KB)
05-18-2022 05:49 PM
Hi @marjan.karafiloski ,
Thanks for your reply.
The output is coming like:
<?xml version='1.0' encoding='UTF-8'?>
<DocumentRoot>
<Document>
<Metadata>
<asMap>
<global>
<doc_id>ae803607-d70c-11ec-9afc-6bf587c0d9c9</doc_id>
</global>
</asMap>
<id>ae803607-d70c-11ec-9afc-6bf587c0d9c9</id>
</Metadata>
<Data>
<xml><?xml version="1.0" encoding="UTF-8"?><Products><Product><ProductCode>A001</ProductCode><ProductName>DellLaptop</ProductName><Price>$400</Price><Country>US</Country></Product><Product><ProductCode>A001</ProductCode><ProductName>DellLaptop</ProductName><Price>$500</Price><Country>AU</Country></Product><Product><ProductCode>A001</ProductCode><ProductName>DellLaptop</ProductName><Price>$550</Price><Country>EU</Country></Product></Products></xml>
<original>
<products>
<ProductCode>A001</ProductCode>
<ProductName>DellLaptop</ProductName>
<Price>$400</Price>
<Country>US</Country>
</products>
<products>
<ProductCode>A001</ProductCode>
<ProductName>DellLaptop</ProductName>
<Price>$500</Price>
<Country>AU</Country>
</products>
<products>
<ProductCode>A001</ProductCode>
<ProductName>DellLaptop</ProductName>
<Price>$550</Price>
<Country>EU</Country>
</products>
</original>
</Data>
</Document>
</DocumentRoot>
With some additional tags, how to remove them?
One more thing How I can introduce namespaces in output xml with the approch you have suggested. Sample xml with output is like:
<?xml version="1.0" encoding="UTF-8"?>
<ProductCode xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<cbc:ProductName>
<cac:CostLocation>
<cbc:country>US</cbc:country>
<cbc:Cost>$400</cbc:Cost>
</cac:CostLocation>
<cac:CostLocation>
<cbc:country>AU</cbc:country>
<cbc:Cost>$500</cbc:Cost>
</cac:CostLocation>
<cac:CostLocation>
<cbc:country>EU</cbc:country>
<cbc:Cost>$550</cbc:Cost>
</cac:CostLocation>
</cbc:ProductName>
</cbc:ProductCode>
Looking forward for your suggestions.
Regards,
Deepak Shaw