0
ik
12.03.12
✎
21:47
|
v7PLUS и XML - как собрать конструкцию вида
<nt first second>текст</nt>
--
Фрагмент:
мЗаписьXML.ОткрытьЭлемент("start");
мЗаписьXML.ВключитьЭлемент("String1",Строка);
//Вот тут надо <nt first second>TEXT</nt>
мЗаписьXML.ВключитьЭлемент("String4",Строка);
мЗаписьXML.ЗакрытьЭлемент();
|
|
2
andrewks
12.03.12
✎
22:19
|
Функция ВывестиЭлем(ТекЭлем,Знач Смещ);
Рез=1;
Попытка
Если (ТекЭлем.nodeType=1) Тогда
Сообщить(Смещ+"Элемент "+ТекЭлем.nodeName+":","!");
ИначеЕсли (ТекЭлем.nodeType=3) Тогда
Сообщить(Смещ+"Текст элемента: "+ТекЭлем.nodeValue);
ИначеЕсли (ТекЭлем.nodeType=4) Тогда
Сообщить(Смещ+"CDATA: "+ТекЭлем.nodeValue);
ИначеЕсли (ТекЭлем.nodeType=8) Тогда
Сообщить(Смещ+"Комментарий: "+ТекЭлем.nodeValue,"I");
Иначе
Сообщить(Смещ+"Элемент "+ТекЭлем.nodeName+":");
Сообщить(Смещ+"Тип: "+ТекЭлем.nodeType);
КонецЕсли;
Для ном=0 По ТекЭлем.attributes.length-1 Цикл
ТекАтр=ТекЭлем.attributes(ном);
Сообщить(Смещ+"Атрибут: "+ТекАтр.nodeName+", значение: "+ТекАтр.nodeValue);
КонецЦикла;
Исключение
Рез=0;
КонецПопытки;
Смещ=Смещ+" ";
Для ном=0 По ТекЭлем.childNodes.length-1 Цикл
ДочЭлем=ТекЭлем.childNodes(ном);
Рез=Рез*ВывестиЭлем(ДочЭлем,Смещ);
КонецЦикла;
Возврат Рез;
КонецФункции
//*******************************************
Функция Сформировать()
ИмяФайла="D:\1.xml";
Попытка
ДОМ=СоздатьОбъект("MSXML.DOMDocument");
Узел=ДОМ.CreateProcessingInstruction("xml","version=""1.0"" encoding=""windows-1251""");
Исключение
Сообщить("Не удалось создать объект DOMDocument","!");
Возврат 0;
КонецПопытки;
ДОМ.insertBefore(Узел,);
ТекЭлем=ДОМ.appendChild(ДОМ.createElement("Файл"));
Текст=ДОМ.createTextNode("Здесь содержимое Файл");
ТекЭлем.appendChild(Текст);
ТекЭлем.setAttribute("Атрибут_Файл_1","Здесь содержимое Атрибут_Файл_1");
Комм=ДОМ.createComment("Далее следует содержимое файла");
ТекЭлем.appendChild(Комм);
ТекЭлем=ТекЭлем.appendChild(ДОМ.createElement("СодержимоеФайла"));
Текст=ДОМ.createTextNode("Здесь содержимое СодержимоеФайла");
ТекЭлем.appendChild(Текст);
ТекЭлем.setAttribute("Атрибут_СодержимоеФайла_1","Здесь содержимое Атрибут_СодержимоеФайла_1");
Текст=ДОМ.createCDATASection("Это секция CDATA");
ТекЭлем.appendChild(Текст);
ДОМ.save(ИмяФайла);
Попытка
ДОМ=СоздатьОбъект("MSXML.DOMDocument");
Исключение
Сообщить("Не удалось создать объект DOMDocument","!");
Возврат 0;
КонецПопытки;
ДОМ.async=0;
ДОМ.validateOnParse=-1;
ДОМ.resolveExternals=-1;
ДОМ.load(ИмяФайла);
Если (ДОМ.parseError.errorCode<>0) Тогда
// ошибки при проверке валидности
Сообщить("При проверке валидности файла "+ИмяФайла+" выявлены ошибки!","!");
Возврат 0;
КонецЕсли;
Рут=ДОМ.documentElement();
Смещ="";
Рез=ВывестиЭлем(Рут,Смещ);
Возврат Рез;
КонецФункции
|
|