#513 closed улучшение (не будем делать)
Игнорировать контент за пределами корневого элемента при парсинге конфига
Reported by: | san | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | sw | Keywords: | |
Cc: |
Description (last modified by )
Предложение возникло на основе #512
Некоторые пользователи сохраняют конфиг файл копируя содержимое из окна браузера в текстовый файл(я видел такое не раз), при этом т.к. файл создаётся "вручную", то в файле может появиться контент за пределами корневого элемента <config>..<config/> и парсер конфига импорта конфигурации платы воспринимает это как ошибку и не может распарсить файл.
Предлагаю парсерам конфига плат, конфига Eth и конфига TDM просто игнорировать контент за пределами корневого элемента <config>..<config/>, как это похоже делает парсер конфигурации блока.
Change History (6)
comment:1 by , 3 years ago
Description: | modified (diff) |
---|
comment:2 by , 3 years ago
Resolution: | → не будем делать |
---|---|
Status: | new → closed |
follow-up: 5 comment:3 by , 3 years ago
Хм. Но если парсинг конфиг файлов из #512 успешно проходит при нажатии кнопочки стрелочка вверх, значит как-то можно и в остальных парсерах сделать также не трогая libxml2.
Это частично реализует предложенное мной улучшение, меня бы это вполне устроило :-)
По крайней мере пустые строки с пробелами и табуляцией парсер будет игнорировать. А "невидимые" строки как-раз легче всего пропустить делая файл вручную.
comment:4 by , 3 years ago
Ну и к тому-же я всегда за единообразие :) Раз один парсер может это съесть(а он между прочим раньше всех тут был), то пусть и другие едят.
comment:5 by , 3 years ago
Replying to san:
Хм. Но если парсинг конфиг файлов из #512 успешно проходит при нажатии кнопочки стрелочка вверх, значит как-то можно и в остальных парсерах сделать также не трогая libxml2.
Плата SW-01 не использует никаких других парсеров кроме libxml2.
По крайней мере пустые строки с пробелами и табуляцией парсер будет игнорировать. А "невидимые" строки как-раз легче всего пропустить делая файл вручную.
Если знаешь, как сделать, чтобы парсер libxml2 игнорировал "мусор" вне корневого элемента, напиши. А еще лучше приложи готовый патч.
comment:6 by , 3 years ago
Если знаешь
Нет не знаю.
Судя по завершению #512 теперь парсеры будут вести себя одинаково и будут нормально съедать файлы с "почти пустыми" строками. Думаю что это решение сойдёт вместо предложенного здесь.
Парсинг данных XML выполняется средствами библиотеки libxml2, поэтому предложенное улучшение стоит направить разработчикам этой библиотеки. Реализовывать собственный парсер XML только для того чтобы проверить валидность загруженного документа не считаю целесообразным.