powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Читабельное сохранение XML
8 сообщений из 8, страница 1 из 1
Читабельное сохранение XML
    #34144898
s.illyuhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть следующая задача - есть большой XML-файл, в котором хранятся настройки.
Очень часто встречаются атрибуты, например
Код: plaintext
1.
2.
3.
<node1>
  <node2 at1="1" at2="2"... atN="N"/>
  ...
</node1>
Для читабельности файла настроек очень хотелось бы уметь сохранить этот файл в виде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<node1>
  <node2 
      at1="1" 
      at2="2"
      ... 
      atN="N"/>
  ...
</node1>
Есть ли какой-нибудь готовый механизм, позволяющий управлять сохранением DOM в файл?
Или же нужно писать свою реализацию?
...
Рейтинг: 0 / 0
Читабельное сохранение XML
    #34145421
Фотография smoyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри ответа я не знаю, просто хочу узнать как ты сохранил в 1-ом формате (верхний пример), у мня вобще одной строкой сохраняет...
...
Рейтинг: 0 / 0
Читабельное сохранение XML
    #34146413
TiG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При трансформации - <xsl:output ... indent="yes" ... />
Если использовать msxml там в каких то интерфейсах есть такое же свойство. Вобщем искать по ключевому слову indent.
...
Рейтинг: 0 / 0
Читабельное сохранение XML
    #34146606
Фотография smoyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To TiG
Нету вродеб такого свойства/метода/функции. Сделал поиск в MSXML2_TLB (в среде делфи), ничо не нашел. Можт не так оно называется?
...
Рейтинг: 0 / 0
Читабельное сохранение XML
    #34148669
Фотография smoyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во блин, сорри, нашел indent... Ручками по классам полазил, нашел. Чож гребанный делфийский поиск его не обнаружил-то? В классе TMXXMLWriter и иже с ним 30, 40, 50 он валяется. Осталось разобраться, как с ним работать. В общем, спасибо.
...
Рейтинг: 0 / 0
Читабельное сохранение XML
    #34150099
s.illyuhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для сохранения в читабельном виде воспользовался связкой XmlTextWriter/StringWriter
Для отступов нужно задать свойство
Код: plaintext
xmlWriter.Formatting = Formatting.Indented;
Отступы для записи атрибутов делал с помощью StringWriter - выводил нужное количество символов отступа в зависимости от глубины вложения.

Жаль, конечно, что в .NET нет более удобных механизмов :(
...
Рейтинг: 0 / 0
Читабельное сохранение XML
    #34151990
Фотография smoyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To s.illyuhin

А мона по подробней... Дело в том, что я для формирования документа делаю так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...
var Doc: DOMDocument50;
...
Doc := CoDOMDocument50.Create;
Doc.async := false;
Root := Doc.createElement('K_2_180_06_001_000');
... // далее пошло формирование дочерних элементов и добавление их к корневому
Doc.validate;
if (Doc.parseError.errorCode<> 0 ) then Doc.save('Error_'+SaveQueryFile)
else Doc.save('Error_'+SaveQueryFile);      
И как перед сохранением загнать весь дукумент в xmlWriter, обработать, вернуть обратно и только после это сохранить? Или так уже нельзя и надо DOMDocument50 убирать и делать через XmlTextWriter? Можно посмотреть как вы сделали, начиная с обьявления и создания xmlWriter и заканчивая записью в файл?

P.S. Если не жалко конешно...:)
...
Рейтинг: 0 / 0
Читабельное сохранение XML
    #34151992
Фотография smoyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу, в последней строчке не
Код: plaintext
Doc.save('Error_'+SaveQueryFile);
а
Код: plaintext
Doc.save(SaveQueryFile);
конешно же. Ну это не принципиально:)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Читабельное сохранение XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]