Q:

Merge several XMLs and propagate changes

Original question:
I have 1000 of XMLs with a similar structure and I want to merge them into a master XML with the elements I need to translate. Once I have this master XML translated I want to propagate the changes back to the individual XMLs, so at the end I will have the 1000 XMLs translated.
I am clear on how to merge the XMLs using XSL, but the part to propagate the changes back it's what I'm struggling with.
Could you give any guidance on how would you do it?
Edit2:
So this what I have so far:
Merging the XMLs
Note that the XMLs may be completely different, this needs to be flexible in terms of XML structure.
Dim XML1 = XElement.Load("D:\xml1.txt")
Dim XML2 = XElement.Load("D:\xml2.txt")
//datasetXMLv2 contains a table Entry with 4 columns: number, Order, File, ContentXML)
//contentXML column is set as an object, all other columns are strings

DatasetXMLv2.Tables("Entry").Rows.Add(New Object() {"1", "order1", "file1", XML1})
DatasetXMLv2.Tables("Entry").Rows.Add(New Object() {"2", "order2", "file2", XML2})

DatasetXMLv2.Tables("Entry").WriteXml("d:\merge.xml")

XML1:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<item type="product">
    <key>Key1</key>
    <field><![CDATA[product name]]></field>
    <comment></comment>
</item>

XML2:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<item type="product">
    <key>Key2</key>
    <field><![CDATA[product name2]]></field>
    <desc><![CDATA[description2]]></desc>
    <comment></comment>
    <img>http://myimage</img>
</item>

Merge.xml
<?xml version="1.0" standalone="yes"?>
<MergeXMLv2>
  <Entry>
    <Number>1</Number>
    <Order>order1</Order>
    <File>file1</File>
    <XMLContent msdata:InstanceType="System.Xml.Linq.XElement, System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <item type="product">
        <key>Key1</key>
        <field><![CDATA[product name]]></field>
        <comment>
        </comment>
      </item>
    </XMLContent>
  </Entry>
  <Entry>
    <Number>2</Number>
    <Order>order2</Order>
    <File>file2</File>
    <XMLContent msdata:InstanceType="System.Xml.Linq.XElement, System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <item type="product">
        <key>Key2</key>
        <field><![CDATA[product name2]]></field>
        <desc><![CDATA[description2]]></desc>
        <comment>
        </comment>
        <img>http://myimage</img>
      </item>
    </XMLContent>
  </Entry>
<MergeXMLv2>

As you can see, the result from merging is satisfactory as I have each XML mapped (in this example I have used file1 and file2 but it would have the actual xml1 and xml2 paths) to then extract the content stored in the XMLcontent node.
Propagating the XMLs
This is the part where I am struggling with. My code so far is as follows:
Dim mergeXML As XmlDocument
Dim nodelist As XmlNodeList
Dim node As XmlNode
mergeXML = New XmlDocument

mergeXML.Load("D:\merge.xml")
nodelist = mergeXML.SelectNodes("//Entry")

For Each node In nodelist
    Dim nodeNumer = node.ChildNodes(0).InnerText
    Dim nodeOrder = node.ChildNodes(1).InnerText
    Dim nodeFile = node.ChildNodes(2).InnerText
    Dim nodeXMLcontent = node.ChildNodes(3).InnerText
Next

I'm missing the part to simply extract the content of the XMLcontent node to a separate XML using the Number, order, file nodes to replace the original files xml1.txt and xml2.txt.
Any help would be highly appreciated.
Thanks!

A:

Add these libraries 
    Imports System.IO
    Imports System.Xml.Serialization

Code will be like
    Dim mergeXML As XmlDocument
    Dim nodelist As XmlNodeList
    Dim node As XmlNode
    mergeXML = New XmlDocument

    mergeXML.Load("D:\merge.xml")
    nodelist = mergeXML.SelectNodes("//Entry")

    For Each node In nodelist
        Dim nodeNumber = node.ChildNodes(0).InnerText
        Dim nodeOrder = node.ChildNodes(1).InnerText
        Dim nodeFile = node.ChildNodes(2).InnerText
        Dim nodeXMLcontent = node.LastChild.FirstChild

        Dim objStreamWriter As New StreamWriter("C:\ExtractedXML_" & nodeNumber & nodeOrder & nodeFile & ".txt")
        Dim x As New XmlSerializer(nodeXMLcontent.GetType)
        x.Serialize(objStreamWriter, nodeXMLcontent)
        objStreamWriter.Close()
    Next

