• Авторизация


Функции Document Object Model (DOM) для 8.0 21-04-2005 17:48 к комментариям - к полной версии - понравилось!


Набросал набор функций для работы с DOM для 1С 8.0, думаю будет полезным!

Функция DOMДокумент(Узел)
ДОМ=Узел.ownerDocument;
Если ДОМ=Неопределено Тогда
ДОМ=Узел;
КонецЕсли;
Возврат ДОМ;
КонецФункции

Функция DOMКорень(Дом)
Возврат Дом.DocumentElement;
КонецФункции

Функция DOMДобавитьУзел(УзелРодитель, Имя)
XMLDOMNode =DOMДокумент(УзелРодитель).createElement(Имя);
УзелРодитель.appendChild(XMLDOMNode);
Возврат XMLDOMNode;
КонецФункции

Функция DOMДети(Узел)
Перем Рез;
Рез=Новый Массив();
Для Инд=0 По Узел.ChildNodes().Length-1 Цикл
Рез.Добавить(Узел.ChildNodes(Инд));
КонецЦикла;

Возврат Рез;
КонецФункции


Процедура DOMУстановитьАтрибут(Узел, Имя, Значение)
Узел.setAttribute(Имя, Значение);
КонецПроцедуры

Процедура DOMУстановитьТекст(Узел, Текст)
Узел.Text=Текст;
КонецПроцедуры

Функция DOMУзелАтрибут(Узел, Имя)
Возврат Узел.GetAttribute(Имя);
КонецФункции

Функция DOMУзелИмя(Узел)
Возврат Узел.baseName;
КонецФункции


Функция DOMУзелПолучить(Узел, Имя, Массив=ложь)
Перем Рез;
Рез=Новый Массив();

ДОМ=DOMДокумент(Узел);
ДОМ.SetProperty("SelectionLanguage","XPath");
//Узлы = Узел.SelectNodes("//*[name()='"+Имя+"']");
Узлы = Узел.SelectNodes(Имя);
Для Инд=0 По Узлы.Length-1 Цикл
Если Массив=ложь Тогда
Возврат Узлы.item(Инд);
КонецЕсли;
Рез.Добавить(Узлы.item(Инд));
КонецЦикла;
Если Массив=Ложь Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Рез;

КонецФункции

Функция DOMУзелТекст(Узел)
Возврат Узел.Text;
КонецФункции


Функция DOMУстановитьКодировку(ДОМ, Кодировка="windows-1251")
pi = ДОМ.createProcessingInstruction("xml", " version='1.0' encoding='"+Кодировка+"'");
ДОМ.appendChild(pi);
КонецФункции
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Функции Document Object Model (DOM) для 8.0 | fixin - Дневник fixin | Лента друзей fixin / Полная версия Добавить в друзья Страницы: раньше»