Приклад форматування xml тексту за допомогою таблиці стилів. Даний прийом дозволяє домогтися "правильного" форматування xml даних при роботі з об'єктною моделлю документа. А саме, замінити уявлення вмісту xml файлу у вигляді суцільної рядки, на текст з перенесенням рядків і відступами в розділах.
І вітер-пам'ять ночами гуде,
Дерева-пам'ять цілий день белькоче.
І там, в пернатої пам'яті моєї,
Всі казки починаються з "одного разу".
Так ось, одного разу мені довелося переносити дані з бази на платформі 1С: Підприємство 7.7. Перший етап, як зазвичай, складався в експорті-імпорті довідників. Як засіб обміну виступав файл у форматі xml. Запис і подальше читання було реалізовано через об'єкт Msxml2.DOMDocument.
У наведеному фрагменті коду створюється об'єкт xmlDOM і формується секція заголовка майбутнього файлу, в який додається кореневий елемент Body. що містить всю інформацію, що виводиться. Надалі створення нових записів відбувається через виклик двох функцій - createElement (.) І appendChild (.). Коли xml документ заповнений, він зберігається у вигляді зовнішнього файлу викликом методу Save (.).
Послідовність дій нескладна. Але якщо відкрити отриманий файл, то виявиться, що всі дані представлені однією довгою рядком. А це, відверто кажучи, незручно. Виникає цілком законне питання, як привести інформацію до зручного виду.
Виявляється, що я не перший, хто зіткнувся з цією проблемою. У російськомовному розділі Мережі питань "що в цьому випадку робити?" значно більше ніж відповідей. Насправді, рішення єдине - замінити послідовність символів><на последовательность>[Символ розриву рядків]<. Никаких иных способов мне не встречалось. А вот замену можно провести по разному.
Але це ще не все, використовуючи даний метод я виявив, що перетворений текст зберігається в кодуванні UTF-16. Втім, після нетривалої боротьби дане перешкода була усунена. Застосування обробки труднощів не складе. Треба вибрати файл приймач, вказати вид довідника, який необхідно вивантажити і натиснути кнопку Сформувати. За командою Структура виводиться табличний документ з описом реквізитів вибраного довідника.