|
Странный xml файл | ☑ | ||
---|---|---|---|---|
0
shira84
07.06.24
✎
10:22
|
Какой-то странный файл получаю на выходе из тсд, хочу товары загрузить в 1С, но естественно он не читается никак. Пробелы (скорее всего даже спецсимволы) почему-то после каждой буквы. Может кто-то подскажет что с ним можно сделать? Пример файла:
< ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 8 " ? > < T a b l e D o c u m e n t I d = " 2 8 9 9 9 c e 4 - f 8 d a - 1 1 e e - a 1 c 4 - 0 0 1 5 5 d 7 5 9 a 5 4 " D o c u m e n t N a m e = " =25=B0@870F8O !, , #0 0 - 0 0 0 0 0 1 >B 2 8 . 0 5 . 2 4 " D o c u m e n t T y p e = " =25=B0@870F8O!" > < R e c o r d B a r C o d e B a s e 6 4 = " M j A 4 M T A 0 N z U 3 O D U x N A = = " N a m e = " @>5:B>@ B e n Q W 6 0 0 8=2: 1 1 0 1 3 4 0 5 0 0 0 0 1 " A r t i c l e = " " U n i t O f M e a s u r e m e n t = " " C h a r a c t e r i s t i c O f N o m e n c l a t u r e = " " S e r i e s O f N o m e n c l a t u r e = " " B a r C o d e S e r i e s O f N o m e n c l a t u r e = " " N u m b e r O f B a r C o d e s = " 1 " Q u a n t i t y = " 1 " / > < / T a b l e > |
|||
1
Тихий омут
07.06.24
✎
10:29
|
BOM в начале файла есть?
|
|||
2
steep1
07.06.24
✎
10:30
|
(0) двойные кавычки, открывайте сначало файл как текстовый документ вносите правки и потом только открывайте как хмл
|
|||
3
Мультук
гуру
07.06.24
✎
10:37
|
(0)
P.S. Да, время бежит. hex-коды, Hiew, Far: F3 а потом F4 Кодировки, перекодировщики. Строка by default уже набор символов, а не байтов. |
|||
4
shira84
07.06.24
✎
10:41
|
(2) пробовал СтрНайти() СтрЗаменить() бесполезны, т.к. там какието неведомые спецсимволы а не пробелы
|
|||
5
Chai Nic
07.06.24
✎
10:42
|
Выложите лучше этот xml в виде файла. А то гадать, что изначально в файле, а что нафантазировал движок форума, неблагодарное дело..
|
|||
6
Тихий омут
07.06.24
✎
10:45
|
(4) Проверь в начале файла любым hex редактором наличие трёх байт - EF BB BF. Если их нет - добавь
|
|||
7
shira84
07.06.24
✎
10:53
|
вот сам файл https://disk.yandex.ru/d/p6jcZt52fuB9VA
|
|||
8
shira84
07.06.24
✎
10:55
|
(6) присутствуют
|
|||
9
shira84
07.06.24
✎
11:05
|
ЧтениеТекста в кодировке UTF-16 более менее нормально сработало, куча иероглифов конечно, но хоть позволяет работать как со строкой. Мне по сути штрихкод оттуда нужен и количество.
|
|||
10
Лирик
07.06.24
✎
11:13
|
Такое ощущение что либо ТСД либо драйвер либо обработчик получает данные в виде массива символов и "собирает" их в строку с разделителем который "скорее всего даже спецсимволы". Копайте от настроек ТСД. Можно попробовать сбросить до заводских настроек.
|
|||
11
Chai Nic
07.06.24
✎
11:17
|
Да, похоже что реально там UTF16 LE, а в теге encoding указано неверное значение UTF-8. Поэтому его и не открывает парсер нормально.
|
|||
12
Тихий омут
07.06.24
✎
11:18
|
Действительно странный файл. Поставил BOM от UTF16LE - часть файла стала читаемой, часть - превратилась в хз что... Как будто там куски в разных кодировках
|
|||
13
Djelf
07.06.24
✎
11:40
|
Декодированный
<?xml version="1.0" encoding="UTF-8"?> <Table DocumentId="28999ce4-f8da-11ee-a1c4-00155d759a54" DocumentName="Инвентаризация ОС, НМА, НПА БУ00-000001 от 28.05.24" DocumentType="ИнвентаризацияОС"> <Record BarCodeBase64="NDYwMTU0NjA4MDg3NQ==" Name="Компьютер ACER (комплект) инв:1101340300001" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="1" Quantity="1"/> <Record BarCodeBase64="MjA4MTA0NzU3ODUzOA==" Name="Компьютер ACER (комплект) инв:1101340300002" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="0" Quantity="0"/> <Record BarCodeBase64="MjA4MTA0NzU3ODUyMQ==" Name="Компьютер ACER (комплект) инв:1101340300003" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="0" Quantity="0"/> <Record BarCodeBase64="MjA4MTA0NzU3ODUxNA==" Name="Проектор BenQ W600 инв:1101340500001" Article="" UnitOfMeasurement="" CharacteristicOfNomenclature="" SeriesOfNomenclature="" BarCodeSeriesOfNomenclature="" NumberOfBarCodes="1" Quantity="1"/> </Table> |
|||
14
Тихий омут
07.06.24
✎
11:44
|
(13) Респект👍. Поделитесь секретом
|
|||
15
shira84
07.06.24
✎
11:52
|
(13) как? Средствами 1С это можно как-то программно сделать?
|
|||
16
Тихий омут
07.06.24
✎
11:56
|
(15) Похоже, там кривые переносы строк - 0d 0a 00. Ну или не кривые, а в формате, мне ещё неизвестном. Первое, что в голову приходит - побайтовый разбор файла и исправление этой бурды с переносами, но надо пробовать
|
|||
17
trad
07.06.24
✎
11:59
|
(14) (15) как выше сказано там BOM UTF-8, хотя реально UTF-16 причем перемешано BE и LE. Перенос строк - однобайтовый. Франкенштейн.
Руками надо байты туда сюда подвигать |
|||
18
trad
07.06.24
✎
12:00
|
Попытаться поправить источник такого файла
|
|||
19
trad
07.06.24
✎
12:13
|
(15) в начале EF BB BF заменить на FF FE
далее 0D 0A заменить на 0D 00 0A https://www.dropbox.com/scl/fi/240i65osmjdp1g94kiift/TSDData.xml |
|||
20
Djelf
07.06.24
✎
12:07
|
Штирлицом:
wiki:Штирлиц_(программа) https://www.softportal.com/software-3560-shtirlits.html Кодировка вроде UTF-16 LE, но действительно дебильная. Перед "<" в самом начале нет 0x00, переносы строк пишутся как 0x00 0x0D 0x0A, а в этой кодировке должны быть 0x00 0x0D 0x00 0x0A |
|||
21
Garykom
гуру
07.06.24
✎
12:11
|
(0) Что за ТСД такое выдает?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |