Меня надо добавить еще одну информацию (наименование пользователя). С помощью СОМ объекта могу делать но не тот результат получаю. Добавляю, удаляю атрибут но... Можете помогать? Спасибо всем за ранее.
XML = Новый COMОбъект("MSXML2.DOMDocument");
XML.Load(XML_Документ);
//Получаем корневой элемент
Root = XML.DocumentElement;
FirstElement = Root.ChildNodes(1);
ElementsCount = FirstElement.ChildNodes.Length;
Для Стр = 0 По ElementsCount - 1 Цикл
UserID = FirstElement.ChildNodes(Стр).Attributes.GetNamedItem("UserID").text;
//Вот здесь надо писать
КонецЦикла;
//Сохраняем весь документ
XML.Save("D:\Optima\Test.xml")
(3)
Спасибо за вниманию.
Этот код который вы писали по-моему ищут тот атрибут который уже находиться в документе. Но мне надо было добавить новый атрибут в текущем элемента.
Первый очередь создал новый атрибут потом добавил его в необходимый элемент. Использовал метод "setAttributeNode" для добавление атрибута.
Хороший сайт, показывает все методы и функции для работа с XML DOM Документам - XML DOM Document.
Может кому-то пригодиться полный код -
Процедура ДобавитьНеобходимыеДанныеДляПланаОбмена(XML_Документ)
XML = Новый COMОбъект("MSXML2.DOMDocument");
XML.Load(XML_Документ);
Root = XML.DocumentElement;
FirstElement = Root.ChildNodes(1);
ElementsCount = FirstElement.ChildNodes.Length;
Для Стр = 0 По ElementsCount - 1 Цикл
newAttr = xml.createAttribute("UserName");
newAttr.value = Справочники.Сотрудники.НайтиПоКоду(FirstElement.ChildNodes(Стр).attributes.getNamedItem("UserID").text).Наименование;
FirstElement.ChildNodes(Стр).setAttributeNode(newAttr);
newAttr = xml.createAttribute("UserCashBox");
newAttr.value = Справочники.Сотрудники.НайтиПоКоду(FirstElement.ChildNodes(Стр).attributes.getNamedItem("UserID").text).Касса.Наименование;
FirstElement.ChildNodes(Стр).setAttributeNode(newAttr);
newAttr = xml.createAttribute("UserStock");
newAttr.value = Справочники.Сотрудники.НайтиПоКоду(FirstElement.ChildNodes(Стр).attributes.getNamedItem("UserID").text).Склад.Наименование;
FirstElement.ChildNodes(Стр).setAttributeNode(newAttr);
КонецЦикла;
XML.Save("D:\Test\Test.xml");
КонецПроцедуры
не верно
не получится дописать в читаемый xml что-то
надо сначала все прочитать, сформировать или таблицу или структуру прочитанных данных
в процессе чтения добавить к данным требуемый атрибут со значением
закрыть чтение
только потом записать все заново в новый файл или в тот же с перезаписью
(3)
Спасибо за вниманию.
Этот код который вы писали по-моему ищут тот атрибут который уже находиться в документе. Но мне надо было добавить новый атрибут в текущем элемента.
Первый очередь создал новый атрибут потом добавил его в необходимый элемент. Использовал метод "setAttributeNode" для добавление атрибута.
Хороший сайт, показывает все методы и функции для работа с XML DOM Документам - XML DOM Document.
Может кому-то пригодиться полный код -
Процедура ДобавитьНеобходимыеДанныеДляПланаОбмена(XML_Документ)
XML = Новый COMОбъект("MSXML2.DOMDocument");
XML.Load(XML_Документ);
Root = XML.DocumentElement;
FirstElement = Root.ChildNodes(1);
ElementsCount = FirstElement.ChildNodes.Length;
Для Стр = 0 По ElementsCount - 1 Цикл
newAttr = xml.createAttribute("UserName");
newAttr.value = Справочники.Сотрудники.НайтиПоКоду(FirstElement.ChildNodes(Стр).attributes.getNamedItem("UserID").text).Наименование;
FirstElement.ChildNodes(Стр).setAttributeNode(newAttr);
newAttr = xml.createAttribute("UserCashBox");
newAttr.value = Справочники.Сотрудники.НайтиПоКоду(FirstElement.ChildNodes(Стр).attributes.getNamedItem("UserID").text).Касса.Наименование;
FirstElement.ChildNodes(Стр).setAttributeNode(newAttr);
newAttr = xml.createAttribute("UserStock");
newAttr.value = Справочники.Сотрудники.НайтиПоКоду(FirstElement.ChildNodes(Стр).attributes.getNamedItem("UserID").text).Склад.Наименование;
FirstElement.ChildNodes(Стр).setAttributeNode(newAttr);
КонецЦикла;
XML.Save("D:\Test\Test.xml");
КонецПроцедуры