Hello. I’m very new to n8n and I’m trying to simply add some data to an XML file. I know I have to read the file, convert it to JSON, edit data and then convert it back to XML. No problem with that, point is I have to write data in a specific part of the file, under a specific tag.
Here my input file :
<PROGETTI>
<PROGETTO NOME="PROG1">
<VIDEO>
<MENU>1</MENU>
<TITOLO>History</TITOLO>
<URL>https://www.youtube.com/1</URL>
</VIDEO>
<VIDEO>
<MENU>2</MENU>
<TITOLO>History</TITOLO>
<URL>2</URL>
</VIDEO>
</PROGETTO>
<PROGETTO NOME="PROG2">
<VIDEO>
<CLIENTE>CL1</CLIENTE>
<DATA>24/08/2025</DATA>
<TITOLO>Video 1</TITOLO>
<URL>https://share.zight.com/1</URL>
</VIDEO>
<VIDEO>
<CLIENTE>CL2</CLIENTE>
<DATA>19/08/2025</DATA>
<TITOLO>Video 2</TITOLO>
<URL>https://share.zight.com/2</URL>
</VIDEO>
<VIDEO>
</PROGETTO>
</PROGETTI>
I have to add a simple element like this for example, to the SECOND project (the two projects have different structures) :
{ VIDEO:
{ DATA: Date.now(),
CLIENTE: “CL3”,
URL: “URL3” }
};
I’m looking for an output like this :
<PROGETTI>
<PROGETTO NOME="PROG1">
<VIDEO>
<MENU>1</MENU>
<TITOLO>History</TITOLO>
<URL>https://www.youtube.com/1</URL>
</VIDEO>
<VIDEO>
<MENU>2</MENU>
<TITOLO>History</TITOLO>
<URL>2</URL>
</VIDEO>
</PROGETTO>
<PROGETTO NOME="PROG2">
<VIDEO>
<CLIENTE>CL1</CLIENTE>
<DATA>24/08/2025</DATA>
<TITOLO>Video 1</TITOLO>
<URL>https://share.zight.com/1</URL>
</VIDEO>
<VIDEO>
<CLIENTE>CL2</CLIENTE>
<DATA>19/08/2025</DATA>
<TITOLO>Video 2</TITOLO>
<URL>https://share.zight.com/2</URL>
</VIDEO>
<VIDEO>
<CLIENTE>CL3</CLIENTE>
<DATA>19/08/2025</DATA>
<TITOLO></TITOLO>
<URL>URL3</URL>
</VIDEO>
</PROGETTO>
</PROGETTI>
I cannot make n8n to write data on the right position, just to appen data at the file end. Here the code I’ve use on my CODE node to achieve it (To JSON is my input file):
let jsonData = $(“To JSON”).all() // input data
// New record to add
const nuovoRecord = {
VIDEO:
{
DATA: Date.now(),
CLIENTE: “CL3”,
URL: “URL3”
}
};
// Add new record
jsonData.push(nuovoRecord);
// Return Json output
return jsonData.map(item => ({ json: item }));
Obviously, this way data are appended, but cannot make n8n to do something like jsonData.TagsthatIwant.push(nuovoRecord) without getting error.
Any smarter (and working) way to solve this? Any way without JavaScript?
Thank you so much in advance
