Forum Discussion

deepak_shaw's avatar
deepak_shaw
Contributor
4 years ago
Solved

CSV to XML with repetitive xml nodes

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|Dell...
  • robin's avatar
    robin
    4 years ago

    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.