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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дозаписывание файла через XmlTextWriter, но без XMLDocument 
:(
    Опции темы
Darkmaster
Дата 2.5.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возник небольшой вопрос при работе с XML. Есть файл, который имеет структуру подобную этому:

Код

<employer>
<people ID="1">
<name>John</name>
<sex>M</sex>
// и так далее
</name>
</employer>


Нужно дозаписывать в этот файл новых людей <people> </people>

Это очень легко сделать при помощи XMlDocument - но в таком случае работа будет несколько медленнее, чем если использовать XMLTextWriter. Но проблема последнего заключается в том, что он всегда заново перезаписывает файл. Пробовал делать добавления при помощи такого открытия файла:

Код

StreamWriter p_x = File.AppendText(xml_path_journal);
XmlTextWriter writer = new XmlTextWriter(p_x);



Да, тогда нужные мне данные и впрямь записываются в файл, но уже после </employer> А должны быть внутри. Существует ли какой-нибудь способ добавления данных в файл при помощи XmlTextReader? Долго искал, пока везде видел информацию только про XMlDocument, которая и так уже известна...

Добавлено через 10 минут и 44 секунды
может вот так:
Код


XmlDocument xml = new XmlDocument(); 
xml.Load("path to xml file"); 
XmlWriter writer;             
xml.WriteContentTo(writer); 


Или это не оптимальный вариант?
--------------------
GeekTV - интернет-телевидение для гиков
PM MAIL   Вверх
mr.DUDA
Дата 3.5.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Читаем содержимое всего файла в строку, добавляем в строку свой XML с нужной позиции, сохраняем всю строку обратно в файл. Так подойдёт ?


--------------------
user posted image
PM MAIL WWW   Вверх
Ordenador
Дата 10.5.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



mr.DUDA
Но тогда записываться будет уже после </employer>, так ведь?
PM MAIL   Вверх
kosten_spb
Дата 11.5.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ordenador
Цитата(mr.DUDA @  3.5.2008,  08:12 Найти цитируемый пост)
добавляем в строку свой XML с нужной позиции



PM MAIL WWW ICQ   Вверх
WaReZMEN
Дата 19.2.2009, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Меня тоже интересует проблему то решили? Вариант с считыванием в переменную не подходит...
PM MAIL ICQ   Вверх
Nestap
Дата 23.2.2009, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



рибята а как если есть хмл на веб как загрузить его??

Это сообщение отредактировал(а) Nestap - 23.2.2009, 22:44
--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
jonie
Дата 24.2.2009, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



Nestap загрузить XML файл на WWW ресурс ? тогда точно также как и любой другой файл. google.com скажет.


По теме, могу предложить очень простой вариант без излишков геммороя - использовани внешнего файла. Вот пример
Код

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE cruisecontrol [
  <!ENTITY IntellectProject SYSTEM "IntellectProject.xml">
]>
<cruisecontrol>
&IntellectProject;
</cruisecontrol>


ну и IntellectProject.xm приаттачится (и это произойти по идее должно в "прозрачном" режиме).....
соотвественно можно "дозаписать", используя что угодно - ведь размер файла не будет такой большой....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Nestap
Дата 24.2.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



jonie

вот проблема!
ести курс валют (на веб) каждый день упдате
как читать етот хмл??
плеасе?
--------------------
<?    echo "Nestap";?>
PM WWW ICQ Skype Jabber   Вверх
jonie
Дата 24.2.2009, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



Nestap : http://www.csharpfriends.com/Articles/getA...x?articleID=115
1) грузим файл
2) работаем с ним. например через XMLDocument


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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