Имя: Пароль:
1C
1C 7.7
v7: Проблема с формированием XML
↓ (Волшебник 31.07.2024 15:50)
0 zenon46
 
31.07.24
15:49
Доброго дня всем!

Понадобилось нарисовать в клюшках выгрузку кое-каких данных, по шаблону.

Так вот, второй строкой в файле идет строка со следующим содержимым:
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">

Не особо получается это сделать.
Начал вот так :
XML_DOM = CreateObject("MSXML2.DOMDocument.4.0");
Header = XML_DOM.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""" ); 
	XML_DOM.appendChild(Header);


А дальше ступор. Ведь это не тэг, а просто какая-то строка.
Может кто-то сталкивался?
1 SleepyHead
 
31.07.24
15:31
(0) А просто в текстовый файл?
2 MWWRuza
 
31.07.24
15:47
А это вообще не комментарий ли случаем?
3 Волшебник
 
31.07.24
15:50
(0) Ну добавьте эту строку потом, если нужна. Подумаешь...
4 Волшебник
 
31.07.24
15:50
(0) Хватит уже эти клюшки копать. Переходите на восьмёрку.
5 Garykom
 
31.07.24
15:52
(0) Не в курсе что YML это не XML?
6 zenon46
 
31.07.24
15:52
(4) снеговик тоже есть, но клюшки пока выполняют полностью свою функцию, зачем переходить ? переход ради перехода ?
7 zenon46
 
31.07.24
15:53
(5) странно, в образце файла который нужно сформировать вот такое начало :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2023-01-26T12:33:02+03:00">

Яндекс обозвал это просто YML. Я так понял.
8 Волшебник
 
31.07.24
15:58
(6) Функцию выполняют? Ну ок.
9 Волшебник
 
31.07.24
15:59
(7) YML с XML не путайте.
10 zenon46
 
31.07.24
16:02
(9) и чем же отличается если YML (Yandex Market Language) — собственный стандарт Яндекс.Маркета, основанный на XML.
Те же яйца только вид с боку...
11 Волшебник
 
31.07.24
16:03
(10) Буквой отличается. Ты понял? Буквой!
12 zenon46
 
31.07.24
16:04
(2) да похоже на то..
попробовал сделать вот так :
XML_DOM.appendChild(XML_DOM.createComment("!DOCTYPE yml_catalog SYSTEM ""shops.dtd"""));

получилось немного не то, конечно )

<!--!DOCTYPE yml_catalog SYSTEM "shops.dtd"--> вот так, а должно быть

: <!DOCTYPE yml_catalog SYSTEM "shops.dtd">
13 Garykom
 
31.07.24
16:04
(10) про HTML и XHTML в курсе?
14 Волшебник
 
31.07.24
16:04
(12) хватит тупить. Сделай уже
15 Garykom
 
31.07.24
16:05
(12) ну низзя с помощью средства для работы с XML засунуть в файл похожий на XML (YML, HTML, XHTML и т.д.) то чего в XML не может быть
16 Garykom
 
31.07.24
16:06
(15)+ либо вручную как текст, либо ищи либы для YML, либо шаблон XML и замена в тексте под YML
17 NorthWind
 
31.07.24
16:49
(10) ну как минимум вот этим тегом, который нестандартен для XML и который непонятно как туда впендюривать.
18 NorthWind
 
31.07.24
17:00
(0) текстом выгружайте. Кстати, кроме шуток - я делал подобные вещи так - формировал шаблоны вида <yml_catalog date="%CATALOGDATE%">, а потом менял все значения в %% на нужные по списку через замену в строке. Довольно удобно и напортить с разметкой практически невозможно. Только нужно еще работу со всякими кавычками, знаками больше и меньше и прочими подобными HTML-вещами предусмотреть, которые стандартным образом туда вводить нельзя. И надобно сказать - в качестве бонуса - работает эта шляпа на больших файлах значительно быстрее чем MSXML.
19 Garykom
 
31.07.24
17:27
(18) мне таким же образом пришлось запросы SOAP формировать

ибо через фабрику попробовал - нихрена не вышло ибо в пакете/мануалах от "Открытого АПИ ФНС" тупо нет полных схем, только какие то разрозненные куски, которые непонятно как собрать чтобы засунуть в фабрику
20 NorthWind
 
31.07.24
17:41
(19) в данном случае фабрики еще и нет, ибо 7.7...
21 Garykom
 
31.07.24
17:53
(20) дык CreateObject("MSXML2.DOMDocument.4.0") чем не "фабрика" ?
22 zenon46
 
31.07.24
18:16
Нашел метод в снеговике ЗаписатьБезОбработки, а в MSXML2.DOMDocument.4.0 ничего такого найти не могу.
23 Garykom
 
31.07.24
19:42
(22) дык подсказали же
запиши уникальный тег <DOCTYPE />
а потом тупо замени его в тексте