|   |   | 
| 
 | v7: Сохранение файла формата xml | ☑ | ||
|---|---|---|---|---|
| 0
    
        Slypower 11.05.16✎ 16:59 | 
        добрый день. Создаю выгрузку из 1с7.7 в xml. Пробовал 2-мя способами: 
 1) Scripting.FileSystemObject 2) создаю txt и сохраняю в xml. Вопросы. Нужно ли делать отступы в перед строка1 и строка2, чтобы отображалось: <шапка> строка1 строка2 </шапка> или это не обязательно? Второй вопрос: как сохранить файл в формате unix? | |||
| 1
    
        Slypower 11.05.16✎ 17:00 | 
        (0) строка1 и строка2 должны быть в IE уже с отсутпами     | |||
| 2
    
        Ёпрст гуру 11.05.16✎ 17:01 | 
        (0) отступы не важны.
 делать проще через domdocument | |||
| 3
    
        Ёпрст гуру 11.05.16✎ 17:01 | 
        там есть параметр, делать "табуляцию" или писать всё в одну строку     | |||
| 4
    
        Ёпрст гуру 11.05.16✎ 17:01 | 
        а ИЕ, уже сам отображает, как надо     | |||
| 5
    
        Злопчинский 11.05.16✎ 23:18 | 
        да.. и как выяснилось - ИЕ атрибуты тега отображает по совему разумению а не в том порядке как они записаны в файле..
 ;-) | |||
| 6
    
        Slypower 12.05.16✎ 09:23 | 
        Хорошо. А с помощью domdocument возможно сохранить в формате unix?     | |||
| 7
    
        Slypower 12.05.16✎ 11:12 | 
        (2) а чем проще? 
 Я одну строчку для txt заменяю 3-мя строчками domdocument. Главное, чтобы потом как нужно было) | |||
| 8
    
        Slypower 12.05.16✎ 15:02 | 
        как сделать строку: 
 <issuance xmlns="http://www.w3schools.com"> при xmlns = XML_DOM.createAttribute("xmlns"); xmlns.nodeValue ="""http://www.w3schools.com"""; atrissuance.setAttributeNode(xmlns); он потом везде присваивает для atrissuance атрибут xmlns="", а этого не нужно | |||
| 9
    
        Ёпрст гуру 12.05.16✎ 15:05 | 
        вообще то это не атрибут     | |||
| 10
    
        Ёпрст гуру 12.05.16✎ 15:22 | 
        Так, что ле тебе надо ?
 Процедура Сформировать() Попытка ХМЛФайлДанных=СоздатьОбъект("MSXML2.DOMDocument.6.0"); Узел=ХМЛФайлДанных.CreateProcessingInstruction("xml","version=""1.0"" encoding=""windows-1251"""); Исключение Сообщить("Не удалось создать объект DOMDocument","!"); Возврат; КонецПопытки; ХМЛФайлДанных.insertBefore(Узел,); хмлФайл = ХМЛФайлДанных.appendChild(ХМЛФайлДанных.createElement("issuance")); хмлФайл.setAttribute("xmlns", "http://www.w3schools.com"); ХМЛФайлДанных.save("D:\вася.xml"); КонецПроцедуры | |||
| 11
    
        Slypower 12.05.16✎ 15:31 | 
        setAttribute - Поле агрегатного объекта не обнаружено (setAttribute)
 у меня: XML_DOM=CreateObject("MSXML2.DOMDocument.4.0"); Header = XML_DOM.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""" ); XML_DOM.appendChild(Header); atrissuance = XML_DOM.createElement("issuance"); XML_DOM.appendChild(atrissuance); а дальше в issuance нужно внести xmlns="http://www.w3schools.com" | |||
| 12
    
        Ёпрст гуру 12.05.16✎ 15:38 | 
        (11) как в (10) чем не устраивает ?     | |||
| 13
    
        Slypower 12.05.16✎ 16:06 | 
        Хорошо. Переделал начало как в (10), но вывод тот же. Может я чего-то не догоняю.
 Мне нужен вывод таков: <issuance xmlns="http://www.w3schools.com"> <general> <></> <></> </general> <provider> <></> <></> </provider> </issuance> но при данной работе у меня: <issuance xmlns="http://www.w3schools.com"> <general xmlns=""> <number>текст</number> </general> <provider xmlns=""> <number>текст2</number> </provider> </issuance> т.е. xmlns="" цепляется к каждому 2-му уровню текст 1с: Header = XML_DOM.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""" ); XML_DOM.appendChild(Header); XML_DOM.insertBefore(Header,); atrissuance = XML_DOM.appendChild(XML_DOM.createElement("issuance")); atrissuance.setAttribute("xmlns", "http://www.w3schools.com"); general=XML_DOM.createElement("general"); atrissuance.appendChild(general); atrgeneral=XML_DOM.createElement("number"); atrgeneral.text ="текст"; general.appendChild(atrgeneral); provider=XML_DOM.createElement("provider"); atrissuance.appendChild(provider); atrprovider=XML_DOM.createElement("number"); atrprovider.text ="текст2"; provider.appendChild(atrprovider); | |||
| 14
    
        Ёпрст гуру 12.05.16✎ 16:57 | 
        (13) почитай
 http://forum.foxclub.ru/read.php?29,212205 | |||
| 15
    
        Ёпрст гуру 12.05.16✎ 16:58 | 
        +14
 Цитата: - как заставить DOM документ не создавать xmlns="" - Не играться с пространствами имён, а если они всё-таки уже есть, то в при создании дочерних в createNode() не забывать их указывать явно, тем самым подтверждая принадлежность дочернего к определённому родительскому пространству там ниже, есть пример | |||
| 16
    
        Slypower 12.05.16✎ 17:58 | 
        (15) спасибо. Пол часа вникал, но все сделал по примеру. Спасибо, еще раз     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |