Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объеденить два XML файла 
:(
    Опции темы
SmartBye
Дата 4.6.2008, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Есть программа, которая парсит XML файл, через XSLT. В работе парсера я не очень разобрался, так что у меня такой вопрос:

Нужно как-то объеденить два XML файла с одинаковой структурой в один, просто дописать в конец. Я бы конечно просто их склеил, но у них там древовидная структура и для этого придется раскрывать верхний тег

Подскажите, как это сделать? Ну или, хотя бы, какими средствами.
PM MAIL   Вверх
Gelis
Дата 5.6.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 26.10.2006
Где: Брест

Репутация: нет
Всего: 4



Код

//mainDomDocument  - документ в который добавляем ноды
XmlDocument mainDomDocument = new XmlDocument();
document.Load(stream);
// далее нужно выбрать нод в который собираемся добавлять дочерние из второго документа
//grouppedNode - имя этого нода
//otherNode - нод который достали из второго документа
XmlNode importedNode = mainDomDocument.ImportNode(otherNode, true);
grouppedNode.AppendChild(importedNode);

PM MAIL   Вверх
SmartBye
Дата 5.6.2008, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Не очень понял, как же все-таки это реализовать...
Сделал вот такой код, но он не работает. Пишет, что не в том контексте добавляемый нод находится.
Код

XmlDocument sys = new XmlDocument();
            sys.Load("systemitems.xml");
            XmlDocument user = new XmlDocument();
            user.Load("useritems.xml");
            XmlNodeList userList = user.ChildNodes;
            foreach (XmlNode node in userList)
            {
                sys.AppendChild(node);
            }
            sys.Save("compete.xml");

Документ такого типа: 
Код

<?xml version="1.0" encoding="utf-8" ?>
<Items>
<Item><Names><Name>Item #1</Name></Names><Price>Price #1</Price></Item>
<Item><Names><Name>Item #2</Name></Names><Price>Price #2</Price></Item>
<Item><Names><Name>Item #3</Name></Names><Price>Price #3</Price></Item>
<Item><Names><Name>Item #4</Name><Name>Item #5</Name></Names><Price>Price #4</Price></Item>
</Items>

Нужно к нему, к примеру, добавить все строки <Item></Item> из другого такого же документа.
PM MAIL   Вверх
Gelis
Дата 7.6.2008, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 26.10.2006
Где: Брест

Репутация: нет
Всего: 4



Обратите внимание на строчку
Код

XmlNode importedNode = mainDomDocument.ImportNode(otherNode, true);

Вот решение вашей проблемы
Код

XmlDocument sys = new XmlDocument();
            sys.Load("systemitems.xml");
            XmlDocument user = new XmlDocument();
            user.Load("useritems.xml");
            XmlNodeList userList = user.ChildNodes;
            foreach (XmlNode node in userList)
            {
                 XmlNode impotedNode =  sys.ImportNode(node,true);
                sys.AppendChild(importedNode);
            }
            sys.Save("compete.xml");

PM MAIL   Вверх
SmartBye
Дата 23.6.2008, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 15.5.2008

Репутация: нет
Всего: нет



Спасибо. Будем пробовать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.