|
Ошибочный порядок записи XML | ☑ | ||
---|---|---|---|---|
0
location
naïve
08.10.21
✎
10:39
|
НЕ вижу где ошибка, вроде 2 "Корневых". Подскажите плз.
Ругается на ээту строку ЗаписьXML.ЗаписатьНачалоЭлемента("offers"); ЗаписьXML.ЗаписатьНачалоЭлемента("categories"); Пока Выборка1.СледующийПоЗначениюПоля("Родитель") Цикл //родитель Пока Выборка1.СледующийПоЗначениюПоля("Ссылка") Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("category"); ЗаписьXML.ЗаписатьАтрибут("Id", Строка(Формат(Число(Выборка1.КодКатегории),"ЧГ=0"))); ЗаписьXML.ЗаписатьКонецЭлемента(); //category КонецЦикла; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); //categories ЗаписьXML.ЗаписатьНачалоЭлемента("offers"); Пока Выборка2.СледующийПоЗначениюПоля("КатегорияРодитель") Цикл Пока Выборка2.СледующийПоЗначениюПоля("Ссылка") Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("offer"); ЗаписьXML.ЗаписатьАтрибут("id", Строка(Формат(Число(Выборка2.Код),"ЧГ=0"))); ЗаписьXML.ЗаписатьНачалоЭлемента("categoryid"); ЗаписьXML.ЗаписатьТекст(Строка(Формат(Число(Выборка2.КодКатегорииРодителя),"ЧГ=0"))); ЗаписьXML.ЗаписатьКонецЭлемента(); //categoryid ЗаписьXML.ЗаписатьКонецЭлемента(); //offer КонецЦикла; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); //offers ЗаписьXML.Закрыть(); |
|||
1
pechkin
08.10.21
✎
10:40
|
offers - 2 раза
|
|||
2
ДенисЧ
08.10.21
✎
10:40
|
Два разА офферсы пишешь?
|
|||
3
pechkin
08.10.21
✎
10:41
|
а понял. это ошибка в этой строке. Все верно. Нужен еще 1 верхний узел
|
|||
4
location
naïve
08.10.21
✎
10:44
|
(2) вроде 1
|
|||
5
location
naïve
08.10.21
✎
10:46
|
(3) ЗаписьXML.ЗаписатьНачалоЭлемента("offers"); вот это верхний,
а дальше уже ЗаписьXML.ЗаписатьНачалоЭлемента("offer"); |
|||
6
1Сергей
08.10.21
✎
10:47
|
(5) а в (0) не так
|
|||
7
1Сергей
08.10.21
✎
10:47
|
ЗаписьXML.ЗаписатьНачалоЭлемента("offers");
ЗаписьXML.ЗаписатьНачалоЭлемента("categories"); Пока Выборка1.СледующийПоЗначениюПоля("Родитель") Цикл //родитель Пока Выборка1.СледующийПоЗначениюПоля("Ссылка") Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("category"); ЗаписьXML.ЗаписатьАтрибут("Id", Строка(Формат(Число(Выборка1.КодКатегории),"ЧГ=0"))); ЗаписьXML.ЗаписатьКонецЭлемента(); //category КонецЦикла; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); //categories ЗаписьXML.ЗаписатьНачалоЭлемента("offers");//////////////////////////////////////////////////////////// ЭТО ЧО??? Пока Выборка2.СледующийПоЗначениюПоля("КатегорияРодитель") Цикл Пока Выборка2.СледующийПоЗначениюПоля("Ссылка") Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("offer"); ЗаписьXML.ЗаписатьАтрибут("id", Строка(Формат(Число(Выборка2.Код),"ЧГ=0"))); ЗаписьXML.ЗаписатьНачалоЭлемента("categoryid"); ЗаписьXML.ЗаписатьТекст(Строка(Формат(Число(Выборка2.КодКатегорииРодителя),"ЧГ=0"))); ЗаписьXML.ЗаписатьКонецЭлемента(); //categoryid ЗаписьXML.ЗаписатьКонецЭлемента(); //offer КонецЦикла; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); //offers ЗаписьXML.Закрыть(); |
|||
8
ДенисЧ
08.10.21
✎
10:48
|
(4) хм... у пьяниц в глазах двоится. А что нужно потребить, чтобы в глазах половинилось? )))
|
|||
9
location
naïve
08.10.21
✎
10:49
|
(7) первая строка оферс это ошибка
|
|||
10
location
naïve
08.10.21
✎
10:49
|
(9) ее нет в коде
|
|||
11
location
naïve
08.10.21
✎
10:49
|
ЗаписьXML.ЗаписатьНачалоЭлемента("categories");
Пока Выборка1.СледующийПоЗначениюПоля("Родитель") Цикл //родитель Пока Выборка1.СледующийПоЗначениюПоля("Ссылка") Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("category"); ЗаписьXML.ЗаписатьАтрибут("Id", Строка(Формат(Число(Выборка1.КодКатегории),"ЧГ=0"))); ЗаписьXML.ЗаписатьКонецЭлемента(); //category КонецЦикла; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); //categories ЗаписьXML.ЗаписатьНачалоЭлемента("offers"); Пока Выборка2.СледующийПоЗначениюПоля("КатегорияРодитель") Цикл Пока Выборка2.СледующийПоЗначениюПоля("Ссылка") Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("offer"); ЗаписьXML.ЗаписатьАтрибут("id", Строка(Формат(Число(Выборка2.Код),"ЧГ=0"))); ЗаписьXML.ЗаписатьНачалоЭлемента("categoryid"); ЗаписьXML.ЗаписатьТекст(Строка(Формат(Число(Выборка2.КодКатегорииРодителя),"ЧГ=0"))); ЗаписьXML.ЗаписатьКонецЭлемента(); //categoryid ЗаписьXML.ЗаписатьКонецЭлемента(); //offer КонецЦикла; КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); //offers ЗаписьXML.Закрыть(); |
|||
12
location
naïve
08.10.21
✎
10:50
|
вот код, а ругается на строку ЗаписьXML.ЗаписатьНачалоЭлемента("offers")
|
|||
13
1Сергей
08.10.21
✎
10:55
|
(12) а до этого кода ЗаписьXML пустая?
|
|||
14
location
naïve
08.10.21
✎
10:57
|
(13) ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(Параметры.ПутьКФайлуОбмена + "\"+ Параметры.НаименованиеФайлаОбменаКатегории + ".xml", "UTF-8"); //Открываем файл для записи, указываем кодировку ЗаписьXML.ЗаписатьОбъявлениеXML(); // Записываем объявление XML вот до этого кода что |
|||
15
location
naïve
08.10.21
✎
10:58
|
(13) если убрать блок офферс, то записывается категориес отлично.
|
|||
16
1Сергей
08.10.21
✎
11:11
|
(14) т.е. не пустая?
|
|||
17
location
naïve
08.10.21
✎
11:17
|
(16) нет
|
|||
18
azernot
08.10.21
✎
11:21
|
А если обернуть это в один корневой элемент ROOT?
ЗаписьXML.ЗаписатьНачалоЭлемента("ROOT"); ЗаписьXML.ЗаписатьНачалоЭлемента("categories"); Пока Выборка1.СледующийПоЗначениюПоля("Родитель") Цикл //родитель ... КонецЦикла; ЗаписьXML.ЗаписатьКонецЭлемента(); //offers ЗаписьXML.ЗаписатьКонецЭлемента(); //ROOT ЗаписьXML.Закрыть(); Срабоатает? |
|||
19
location
naïve
08.10.21
✎
11:21
|
провеврил, только что закоментил блок категориес, оферсы записались нормально, коменчу оферсы, категориес записываются нормально.
Вместе не хотят |
|||
20
ChMikle
08.10.21
✎
11:23
|
(19) вы файл сохраните и откройте в XML , по узлам скомпонуйте и увидите какой не сворачивается
|
|||
21
location
naïve
08.10.21
✎
11:24
|
(20) так сворачивается все, если по отдельности
|
|||
22
location
naïve
08.10.21
✎
11:24
|
а если вместе то ошибка
|
|||
23
ChMikle
08.10.21
✎
11:24
|
(21) именно выполнив весь
|
|||
24
ChMikle
08.10.21
✎
11:25
|
вообще не сохраняется файл ?
|
|||
25
DrShad
08.10.21
✎
11:26
|
(18) +100500
|
|||
26
DrShad
08.10.21
✎
11:27
|
не может быть два корневых элемента
|
|||
27
location
naïve
08.10.21
✎
11:28
|
(18) обернул конструкцию. все заработало.
|
|||
28
DrShad
08.10.21
✎
11:29
|
и забудь уже про записьXML пиши через ДокументDOM
|
|||
29
ChMikle
08.10.21
✎
11:31
|
у вас как-то странно 2 узла с одинаковым название offers
|
|||
30
location
naïve
08.10.21
✎
11:39
|
(29) первый, то строка с ошибкой
|
|||
31
location
naïve
08.10.21
✎
11:54
|
(28) пример можно, как эту конструкцию записать через ДокументDOM? чем он лучше обычной записьXML?
|
|||
32
pechkin
08.10.21
✎
12:23
|
нужно именно чтоб 2 верхних уровня было?.
тогда только текстом |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |