Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#513 closed улучшение (не будем делать)

Игнорировать контент за пределами корневого элемента при парсинге конфига

Reported by: san Owned by: alx
Priority: средний Milestone: 1 очередь
Component: sw Keywords:
Cc:

Description (last modified by san)

Предложение возникло на основе #512
Некоторые пользователи сохраняют конфиг файл копируя содержимое из окна браузера в текстовый файл(я видел такое не раз), при этом т.к. файл создаётся "вручную", то в файле может появиться контент за пределами корневого элемента <config>..<config/> и парсер конфига импорта конфигурации платы воспринимает это как ошибку и не может распарсить файл.
Предлагаю парсерам конфига плат, конфига Eth и конфига TDM просто игнорировать контент за пределами корневого элемента <config>..<config/>, как это похоже делает парсер конфигурации блока.

Change History (6)

comment:1 by san, 4 years ago

Description: modified (diff)

comment:2 by alx, 4 years ago

Resolution: не будем делать
Status: newclosed

Парсинг данных XML выполняется средствами библиотеки libxml2, поэтому предложенное улучшение стоит направить разработчикам этой библиотеки. Реализовывать собственный парсер XML только для того чтобы проверить валидность загруженного документа не считаю целесообразным.

comment:3 by san, 4 years ago

Хм. Но если парсинг конфиг файлов из #512 успешно проходит при нажатии кнопочки стрелочка вверх, значит как-то можно и в остальных парсерах сделать также не трогая libxml2.
Это частично реализует предложенное мной улучшение, меня бы это вполне устроило :-)
По крайней мере пустые строки с пробелами и табуляцией парсер будет игнорировать. А "невидимые" строки как-раз легче всего пропустить делая файл вручную.

comment:4 by san, 4 years ago

Ну и к тому-же я всегда за единообразие :) Раз один парсер может это съесть(а он между прочим раньше всех тут был), то пусть и другие едят.

in reply to:  3 comment:5 by alx, 4 years ago

Replying to san:

Хм. Но если парсинг конфиг файлов из #512 успешно проходит при нажатии кнопочки стрелочка вверх, значит как-то можно и в остальных парсерах сделать также не трогая libxml2.

Плата SW-01 не использует никаких других парсеров кроме libxml2.

По крайней мере пустые строки с пробелами и табуляцией парсер будет игнорировать. А "невидимые" строки как-раз легче всего пропустить делая файл вручную.

Если знаешь, как сделать, чтобы парсер libxml2 игнорировал "мусор" вне корневого элемента, напиши. А еще лучше приложи готовый патч.

comment:6 by san, 4 years ago

Если знаешь

Нет не знаю.
Судя по завершению #512 теперь парсеры будут вести себя одинаково и будут нормально съедать файлы с "почти пустыми" строками. Думаю что это решение сойдёт вместо предложенного здесь.

Note: See TracTickets for help on using tickets.