Окончательной версии:XML DataSet Объединения
Я прошу прощения за предыдущий неясный вопрос с кучей случайного кода. В основном то, что мне нужно сделать, чтобы объединить много файлов XML (около 100 - 200 сразу) из одной папки в один файл, вот пример ввода и вывода файлов:
Файл 1
<dokumenty xmlns="http://www.somelink.pl/otherlink">
<info>
<komentarz>Text1</komentarz>
<wersja>Text1</wersja>
<copyright>Text1</copyright>
<data-utworzenia>Text1</data-utworzenia>
<system>
<producent>Text1</producent>
<symbol>Text1</symbol>
<email>Text1</email>
<wersja>Text1</wersja>
<nazwa>Text1</nazwa>
</system>
</info>
<kontrahenci>
<kontrahent>
<id-knt-ks>Text1</id-knt-ks>
<nazwa>Text1</nazwa>
<id-knt>Text1</id-knt>
</kontrahent>
<kontrahent>
<id-knt-ks>Text3</id-knt-ks>
<nazwa>Text3</nazwa>
<id-knt>Text3</id-knt>
</kontrahent>
</kontrahenci>
<towary>
<towar>
<id-towaru>Text1</id-towaru>
<nazwa>Text1</nazwa>
<id-towaru-ks>Text1</id-towaru-ks>
</towar>
</towary>
<zamowienia>
<zamowienie>
<naglowek>
<id-zamowienia>Text1</id-zamowienia>
<tylko-komplet>Text1</tylko-komplet>
<id-knt-dostawcy>Text1</id-knt-dostawcy>
<data-wystawienia>Text1</data-wystawienia>
<nr-zamowienia>Text1</nr-zamowienia>
<id-knt-odbiorcy>Text1</id-knt-odbiorcy>
<potwierdzanie>Text1</potwierdzanie>
</naglowek>
<pozycje>
<pozycja>
<id-towaru>Text1</id-towaru>
<id-poz-zamowienia>Text1</id-poz-zamowienia>
<nr-poz-zamowienia>Text1</nr-poz-zamowienia>
<ilosc>Text1</ilosc>
</pozycja>
</pozycje>
</zamowienie>
</zamowienia>
</dokumenty>
файл 2
<dokumenty xmlns="http://www.somelink.pl/otherlink">
<info>
<komentarz>Text2</komentarz>
<wersja>Text2</wersja>
<copyright>Text2</copyright>
<data-utworzenia>Text2</data-utworzenia>
<system>
<producent>Text2</producent>
<symbol>Text2</symbol>
<email>Text2</email>
<wersja>Text2</wersja>
<nazwa>Text2</nazwa>
</system>
</info>
<kontrahenci>
<kontrahent>
<id-knt-ks>Text2</id-knt-ks>
<nazwa>Text2</nazwa>
<id-knt>Text2</id-knt>
</kontrahent>
</kontrahenci>
<towary>
<towar>
<id-towaru>Text2</id-towaru>
<nazwa>Text2</nazwa>
<id-towaru-ks>Text2</id-towaru-ks>
</towar>
</towary>
<zamowienia>
<zamowienie>
<naglowek>
<id-zamowienia>Text2</id-zamowienia>
<tylko-komplet>Text2</tylko-komplet>
<id-knt-dostawcy>Text2</id-knt-dostawcy>
<data-wystawienia>Text2</data-wystawienia>
<nr-zamowienia>Text2</nr-zamowienia>
<id-knt-odbiorcy>Text2</id-knt-odbiorcy>
<potwierdzanie>Text2</potwierdzanie>
</naglowek>
<pozycje>
<pozycja>
<id-towaru>Text2</id-towaru>
<id-poz-zamowienia>Text2</id-poz-zamowienia>
<nr-poz-zamowienia>Text2</nr-poz-zamowienia>
<ilosc>Text2</ilosc>
</pozycja>
<pozycja>
<id-towaru>Text3</id-towaru>
<id-poz-zamowienia>Text3</id-poz-zamowienia>
<nr-poz-zamowienia>Text3</nr-poz-zamowienia>
<ilosc>Text3</ilosc>
</pozycja>
</pozycje>
</zamowienie>
</zamowienia>
</dokumenty>
И получить новый XML-файл, как это:
<dokumenty xmlns="http://www.somelink.pl/otherlink">
<info>
<komentarz>Text1</komentarz>
<wersja>Text1</wersja>
<copyright>Text1</copyright>
<data-utworzenia>Text1</data-utworzenia>
<system>
<producent>Text1</producent>
<symbol>Text1</symbol>
<email>Text1</email>
<wersja>Text1</wersja>
<nazwa>Text1</nazwa>
</system>
</info>
<kontrahenci>
<kontrahent>
<id-knt-ks>Text1</id-knt-ks>
<nazwa>Text1</nazwa>
<id-knt>Text1</id-knt>
</kontrahent>
<kontrahent>
<id-knt-ks>Text3</id-knt-ks>
<nazwa>Text3</nazwa>
<id-knt>Text3</id-knt>
</kontrahent>
<kontrahent>
<id-knt-ks>Text2</id-knt-ks>
<nazwa>Text2</nazwa>
<id-knt>Text2</id-knt>
</kontrahent>
</kontrahenci>
<towary>
<towar>
<id-towaru>Text1</id-towaru>
<nazwa>Text1</nazwa>
<id-towaru-ks>Text1</id-towaru-ks>
</towar>
<towar>
<id-towaru>Text2</id-towaru>
<nazwa>Text2</nazwa>
<id-towaru-ks>Text2</id-towaru-ks>
</towar>
</towary>
<zamowienia>
<zamowienie>
<naglowek>
<id-zamowienia>Text1</id-zamowienia>
<tylko-komplet>Text1</tylko-komplet>
<id-knt-dostawcy>Text1</id-knt-dostawcy>
<data-wystawienia>Text1</data-wystawienia>
<nr-zamowienia>Text1</nr-zamowienia>
<id-knt-odbiorcy>Text1</id-knt-odbiorcy>
<potwierdzanie>Text1</potwierdzanie>
</naglowek>
<pozycje>
<pozycja>
<id-towaru>Text1</id-towaru>
<id-poz-zamowienia>Text1</id-poz-zamowienia>
<nr-poz-zamowienia>Text1</nr-poz-zamowienia>
<ilosc>Text1</ilosc>
</pozycja>
</pozycje>
</zamowienie>
<zamowienie>
<naglowek>
<id-zamowienia>Text2</id-zamowienia>
<tylko-komplet>Text2</tylko-komplet>
<id-knt-dostawcy>Text2</id-knt-dostawcy>
<data-wystawienia>Text2</data-wystawienia>
<nr-zamowienia>Text2</nr-zamowienia>
<id-knt-odbiorcy>Text2</id-knt-odbiorcy>
<potwierdzanie>Text2</potwierdzanie>
</naglowek>
<pozycje>
<pozycja>
<id-towaru>Text2</id-towaru>
<id-poz-zamowienia>Text2</id-poz-zamowienia>
<nr-poz-zamowienia>Text2</nr-poz-zamowienia>
<ilosc>Text2</ilosc>
</pozycja>
<pozycja>
<id-towaru>Text3</id-towaru>
<id-poz-zamowienia>Text3</id-poz-zamowienia>
<nr-poz-zamowienia>Text3</nr-poz-zamowienia>
<ilosc>Text3</ilosc>
</pozycja>
</pozycje>
</zamowienie>
</zamowienia>
</dokumenty>
Было бы здорово, если бы идентификаторы, где разные, но сортировка не нужна.
Я начал изучать файлы LINQ и XSLT, поэтому для меня это совершенно новая вещь, поэтому в предыдущей версии вопроса возник такой беспорядок.
Edit:
Так что с помощью Александра Петрова я получил почти то, что я хотел, но код не копирует значения XML, только узлы. Вот часть, которая делает это:
var kontrahent = source.Elements("kontrahenci").Nodes();
kontrahenci.Add(kontrahent);
var towar = source.Elements("towary").Elements("towar").Nodes();
towary.Add(towar);
var zamowienie = source.Elements("zamowienia").Elements("zamowienie").Nodes();
zamowienia.Add(zamowienie);
И это не имеет значения, если есть Nodes()
или Elements()
в конце.
Показать точный образец xml и желаемый результат. –
Хорошо, я добавил образцы XML, с которыми мне нужно работать –