Имя: Пароль:
1C
1C 7.7
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
15 Ёпрст
 
12.05.16
16:58
+14
    Цитата:
    - как заставить DOM документ не создавать xmlns=""


- Не играться с пространствами имён, а если они всё-таки уже есть, то в при создании дочерних в createNode() не забывать их указывать явно, тем самым подтверждая принадлежность дочернего к определённому родительскому пространству

там ниже, есть пример
16 Slypower
 
12.05.16
17:58
(15) спасибо. Пол часа вникал, но все сделал по примеру. Спасибо, еще раз
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn