|
YML | ☑ | ||
---|---|---|---|---|
0
Eeelena
24.12.13
✎
11:29
|
Подскажите как записать в файл XML вот такой код:
<yml_catalog date="2010-04-01 17:00"> <shop> ... </shop> </yml_catalog> |
|||
1
sapphire
24.12.13
✎
11:30
|
(0) легко
|
|||
2
Eeelena
24.12.13
✎
11:33
|
а конкретнее?)
|
|||
3
Avganec
24.12.13
✎
11:35
|
(0) по большому счету это уже XML. разница небольшая, так как YML это по сути XML со многими допущениями. а так, наверно надо вынести значения из тега в отдельный тег.
|
|||
4
sapphire
24.12.13
✎
11:36
|
(2) Взаимно.
Если в (0) приемник имеет xsd-схему пакета данных, то его можно импортировать и работать как с типом. А так, можете чем угодно, это всего лишь текст. |
|||
5
sapphire
24.12.13
✎
11:36
|
(3) Не имеет никакого значения.
|
|||
6
sapphire
24.12.13
✎
11:37
|
(3) собственно в (0) xml без директив
|
|||
7
Eeelena
24.12.13
✎
11:38
|
я просто думаю если я запишу через Запись.ЗаписатьБезОбработки(""); то это может сделать XML-документ синтаксически некорректным.
|
|||
8
Avganec
24.12.13
✎
11:39
|
(6) в грубом виде да, но мы не знаем, что там в середине.
|
|||
9
Avganec
24.12.13
✎
11:40
|
(7) попробуй без изменений сделать, может получится без муений...
|
|||
10
Avganec
24.12.13
✎
11:40
|
*мучений
|
|||
11
sapphire
24.12.13
✎
11:42
|
(7) Лен, ну в (0) вообще формат не ясен.
Можешь писать просто как текст, важно соблюсти формат и всё. |
|||
12
Eeelena
24.12.13
✎
11:48
|
По идее передо мной стоит задача выгрузить каталог товаров в формате YML. И к сожалению я не знаю как правильно записать вот эту строку <yml_catalog date="2010-04-01 17:00"> Атрибут date элемента < yml_catalog> должен соответствовать дате и времени генерации YML-файла, как записать это правильно пока не могу разобраться. Надеюсь вы меня поняли.
|
|||
13
Eeelena
24.12.13
✎
11:50
|
Попытка
Файл_XML = Новый ЗаписьXML(); Файл_XML.ОткрытьФайл(XML_Путь, "windows-1251"); Исключение Сообщить("Ошибка при создание XML файла! " + Символы.ПС + ОписаниеОшибки()); КонецПопытки; Файл_XML.ЗаписатьОбъявлениеXML(); Файл_XML.ЗаписатьТипДокумента("yml_catalog","shops.dtd",""); Файл_XML.ЗаписатьКонецЭлемента(); Файл_XML.Закрыть(); Написала пока так в файлике выгрузки формируется код: <?xml version="1.0" encoding="windows-1251"?> <!DOCTYPE yml_catalog SYSTEM "shops.dtd"> |
|||
14
Eeelena
24.12.13
✎
11:51
|
может кто-то сталкивался с такой задачей? может у кого есть пример?
|
|||
15
sapphire
24.12.13
✎
11:58
|
(0)
ДокументDOM=Новый ДокументDOM("","yml_catalog",Новый ОпределениеТипаДокументаDOM("") ); ЗаписьXML=Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("yml_catalog"); ЗаписьXML.ЗаписатьАтрибут("date", Формат(ТекущаяДата(),"ДФ=yyyy-mm-dd HH:mm:ss")); ЗаписьXML.ЗаписатьНачалоЭлемента("shop"); ЗаписьXML.ЗаписатьТекст("...."); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); СтрокаXML=ЗаписьXML.Закрыть(); Сообщить(СтрокаXML); |
|||
16
sapphire
24.12.13
✎
11:59
|
+ в (15) первая строка лишняя.
|
|||
17
sapphire
24.12.13
✎
12:02
|
Во .. совсем так:
ЗаписьXML=Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); ЗаписьXML.ЗаписатьНачалоЭлемента("yml_catalog"); ЗаписьXML.ЗаписатьАтрибут("date", Формат(ТекущаяДата(),"ДФ='yyyy-MM-dd HH:mm:ss'")); ЗаписьXML.ЗаписатьНачалоЭлемента("shop"); ЗаписьXML.ЗаписатьТекст("...."); ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.ЗаписатьКонецЭлемента(); СтрокаXML=ЗаписьXML.Закрыть(); Сообщить(СтрокаXML); |
|||
18
sapphire
24.12.13
✎
12:06
|
(14) Короче, разберешься с объектом ЗаписьXML ?
|
|||
19
Eeelena
24.12.13
✎
12:06
|
да, спасибо)))
|
|||
20
sapphire
24.12.13
✎
12:07
|
(19) Посмотрела (17)?
Оно выдает то же, что и в (0). |
|||
21
sapphire
24.12.13
✎
12:13
|
добавление узла:
ЗаписьXML.ЗаписатьНачалоЭлемента({Имя узла}); для атрибутов текущего узла: ЗаписьXML.ЗаписатьАтрибут({Имя},{Значение}); для текстовых значений узла: ЗаписьXML.ЗаписатьТекст({Значение}); закрытие текущего узла: ЗаписьXML.ЗаписатьКонецЭлемента(); |
|||
22
sapphire
24.12.13
✎
12:24
|
Ну и более сложное, но более логичное решение заключается в использовании XSLT т.к. в этом случае поток выгружаемых данных , как правило сериализуется и его можно сразу получить в виде xml не бегая по выборке.
|
|||
23
grayshadow
24.12.13
✎
12:32
|
купить битрикс, выгрузить туда товар, оттуда выгрузить yml:)
если планируется постоянный обмен |
|||
24
badboychik
24.12.13
✎
12:37
|
а причем тут YML если вы про XML говорите
|
|||
25
Fragster
гуру
24.12.13
✎
12:39
|
а что, яндекс xsd не предоставляет, чтобы через XDTO заполнить по нормальному?
|
|||
26
badboychik
24.12.13
✎
12:44
|
ааа, я перепутал YML с YAML )
|
|||
27
sapphire
24.12.13
✎
12:46
|
(25) есть там все:
http://help.yandex.ru/partnermarket/yml/about-yml.xml |
|||
28
Eeelena
24.12.13
✎
13:03
|
sapphire заходила туда, для меня более проблематично как это в 1с организовать все
|
|||
29
sapphire
24.12.13
✎
13:15
|
(28) Лен, в чем именно состоит проблема?
в (21) написано как писать узлы и атрибуты. Есть DTD схема на яндексе. |
|||
30
sapphire
24.12.13
✎
13:16
|
(28) Для начала нужно понять что выгружать и к чему привязывать (наличие собственного ИМ).
Далее ничего особо сложного. |
|||
31
Eeelena
24.12.13
✎
13:39
|
sapphire ИМ это что?
sapphire в этом тоже проблема, не пойму как выгрузить всю сразу номенклатуру или по группам, ведь нужно указывать как то URL страницы товара, а какой URL у кого товара не известно. может я из мухи делаю слона из за непонимания и все гораздо проще. |
|||
32
sapphire
24.12.13
✎
14:02
|
(31) ИМ = интернет-магазин, собственный.
URL страницы товара - необязательный параметр вроде как. как выгрузить всю сразу номенклатуру или по группам - не имеет особого значения, насколько я понял. Вообще, параметры, обязательные к выгрузке указаны в DTD - схеме. |
|||
33
Eeelena
24.12.13
✎
14:23
|
хорошо, спасибо большое sapphire буду разбираться)
|
|||
34
sapphire
24.12.13
✎
14:24
|
(33) Незачто.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |