Имя: Пароль:
1C
1C 7.7
v7: Работа с XML 7.7
0 Koliaff
 
17.09.12
23:35
Попросили сделать выгрузку в XML справочника номенклатура. Взял из последней ТиС за основу обработку "XMLВыгрузкаКоммерческихПредложений".
В этой обработке используется внешняя компонента V7Plus.dll
Вот код создания объекта для работы с XML
Анализатор    = СоздатьОбъект("AddIn.XMLParser");
=====================================
Потом разобрался, все оказалось просто. Сначала создаем корень XML
Документ    = Анализатор.СоздатьДокумент();
Документ.ЗагрузитьИзСтроки("<?xml version =""1.0""?><КоммерческаяИнформация></КоммерческаяИнформация>");

====
Чтобы создать подчиненный элемент используется функция
СоздатьПодчиненныйЭлемент(Владелец, ИмяТега, Значение="")
Чтобы  добавить свойство используется процедура
ПроверитьИУстановитьАтрибут(Эл, ИдАтрибута, ЗнАтрибута);

=============================
Вроде все шло хорошо, но вот наткнулся на такую строку в дереве :
<property name="Цена">14246</property>, которую мне надо реализовать.
Здесь по хорошему надо написать такой код :
Пр = СоздатьПодчиненныйЭлемент(Эл1,"property name");
ПроверитьиУстановитьАтрибут(пр,"Цена",100);
===============================
Но Функция СоздатьПодчиненныйЭлемент не воспринимает в качестве второго параметра строку с пробелом. Как быть ? Подскажите кто работал с этим объектом AddIn.XMLParser.
1 andrewks
 
17.09.12
23:39
V7Plus.dll - в топку

по сабжу - жесть. это надо же совсем не различать атрибуты и элементы
2 Koliaff
 
17.09.12
23:41
(andrewks) подскажи как написать правильно, с XML мало работал, именно в части написания самого дерева. В 8-ке все гораздо проще )
3 andrewks
 
18.09.12
00:03
(2) при чём здесь 7.7 или 8? у тебя элемент называется "property", а атрибут "name". а ты всё в кучу смешал
4 Koliaff
 
18.09.12
00:07
(andrewks) а что такое "Цена" тогда и "14246"  ?
5 andrewks
 
18.09.12
00:10
значение атрибута "name" и значение элемента "property" соответственно
6 Koliaff
 
18.09.12
00:15
Пр = СоздатьПодчиненныйЭлемент(Эл1,"property",100);
ПроверитьИУстановитьАтрибут(Пр,"name","Цена");
Результат :
<property name="Цена">100</property>
=====================================
(andrewks) Спасибо, добрый человек !
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан