From: Jackson420 on 24 Aug 2010 07:51 Hi Martin The final requirement is a bit different, i completed it through 2-stage process, lets see if you can do this <ColumnData> <Data> <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> <Data>Sales org #1|Sales org #2|Sales org #3</Data> </Data> <Data> <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> <Data>G146|G147|G148 </Data> </ColumnData> "Martin Honnen" <mahotrash(a)yahoo.de> wrote in message news:uODD9eIQLHA.4988(a)TK2MSFTNGP04.phx.gbl... > Jackson420 wrote: >> Here is a sample data of 1 file, you may make 3 more of the same and try >> to join them on Guid and create an xml file >> >> <?xml version="1.0" encoding="utf-8"?> >> <ColumnData> >> <Data> >> <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> >> <Data>Sales org#</Data> >> </Data> >> <Data> >> <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> >> <Data>G146</Data> >> </Data> >> </ColumnData > > Here is some sample code processing a List(Of XDocument) of the above > structure and creating a merged document: > > Dim doc1 As XDocument = <?xml version="1.0" encoding="utf-8"?> > <ColumnData> > <Data> > > <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> > <Data>Sales org #1</Data> > </Data> > <Data> > > <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> > <Data>G146</Data> > </Data> > </ColumnData> > > Dim doc2 As XDocument = <?xml version="1.0" encoding="utf-8"?> > <ColumnData> > <Data> > > <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> > <Data>Sales org #2</Data> > </Data> > <Data> > > <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> > <Data>G147</Data> > </Data> > </ColumnData> > > Dim doc3 As XDocument = <?xml version="1.0" encoding="utf-8"?> > <ColumnData> > <Data> > > <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> > <Data>Sales org #3</Data> > </Data> > </ColumnData> > > Dim doc4 As XDocument = <?xml version="1.0" encoding="utf-8"?> > <ColumnData> > <Data> > > <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> > <Data>G148</Data> > </Data> > </ColumnData> > > Dim docs As New List(Of XDocument)() > docs.Add(doc1) > docs.Add(doc2) > docs.Add(doc3) > docs.Add(doc4) > > Dim mergedDoc As XDocument = New XDocument( _ > New XElement(doc1.Root.Name, _ > From data In docs.<ColumnData>.<Data> _ > Group data By guid = data.<Guid>.Value Into G = Group > _ > Select New XElement("Data", G(0).<Guid>, G.<Data>))) > > mergedDoc.Save(Console.Out) > > Output is as follows: > > <ColumnData> > <Data> > <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> > <Data>Sales org #1</Data> > <Data>Sales org #2</Data> > <Data>Sales org #3</Data> > </Data> > <Data> > <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> > <Data>G146</Data> > <Data>G147</Data> > <Data>G148</Data> > </Data> > </ColumnData> > > Is that what you want? Or how should the merged document look exactly? > > > -- > > Martin Honnen --- MVP Data Platform Development > http://msmvps.com/blogs/martin_honnen/
From: Martin Honnen on 24 Aug 2010 09:00 Jackson420 wrote: > The final requirement is a bit different, i completed it through 2-stage > process, lets see if you can do this > > <ColumnData> > <Data> > <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> > <Data>Sales org #1|Sales org #2|Sales org #3</Data> > </Data> > <Data> > <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> > <Data>G146|G147|G148 > </Data> > </ColumnData> Yes, that is possible, change the "merge" query to Dim mergedDoc As XDocument = New XDocument( _ New XElement(doc1.Root.Name, _ From data In docs.<ColumnData>.<Data> _ Group data By guid = data.<Guid>.Value Into G = Group _ Select New XElement("Data", G(0).<Guid>, New XElement("Data", String.Join("|", G.<Data>.Select(Function(d) d.Value).ToArray()))))) (only all on one line). -- Martin Honnen --- MVP Data Platform Development http://msmvps.com/blogs/martin_honnen/
From: Jackson420 on 24 Aug 2010 09:38 Thanks "Martin Honnen" <mahotrash(a)yahoo.de> wrote in message news:%23$rjMx4QLHA.2100(a)TK2MSFTNGP04.phx.gbl... > Jackson420 wrote: > >> The final requirement is a bit different, i completed it through 2-stage >> process, lets see if you can do this >> >> <ColumnData> >> <Data> >> <Guid>d2152461-5005-4f22-af65-66f1fe734e81</Guid> >> <Data>Sales org #1|Sales org #2|Sales org #3</Data> >> </Data> >> <Data> >> <Guid>4bea02ee-f986-423e-a093-71d78f61ea9b</Guid> >> <Data>G146|G147|G148 >> </Data> >> </ColumnData> > > Yes, that is possible, change the "merge" query to > > Dim mergedDoc As XDocument = New XDocument( _ > New XElement(doc1.Root.Name, _ > From data In docs.<ColumnData>.<Data> _ > Group data By guid = data.<Guid>.Value Into G = Group > _ > Select New XElement("Data", G(0).<Guid>, New > XElement("Data", String.Join("|", G.<Data>.Select(Function(d) > d.Value).ToArray()))))) > > (only all on one line). > > > -- > > Martin Honnen --- MVP Data Platform Development > http://msmvps.com/blogs/martin_honnen/
First
|
Prev
|
Pages: 1 2 Prev: Weird security configuration message Next: ModalPopupExtender and Required Field Validator |