Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Проверить xml-файл на синтаксические ошибки (http://forum.oszone.net/showthread.php?t=220292)

Trueman777 12-11-2011 15:16 1793598

Проверить xml-файл на синтаксические ошибки
 
Не был уверен, где лучше создать эту тему - здесь или в "ПО Windows", решил всё же здесь... Надеюсь, правильно.

Друзья, подскажите, как легко и быстро прошерстить xml-файл на ошибки синтаксиса? Ну там, пропущенные кавычки и т.д.
Работаю в NotePad++, он сами эти ошибки в тексте подсвечивает, но вот чтобы выполнить поиск этих самых ошибок по файлу - такой функции я не нашёл.
Нагуглил один плагин, который вроде бы эту функцию как раз и реализует, но после его подключения и перезапуска NotePad++ вылезает ошибка, что-то там про неподдерживающийся плагин и ANSI, уже дословно не помню... В общем, не работает.

Сам xml-файл используется просто как текстовый дата-файл, не знаю, почему разрабами был выбран именно xml, видимо, им так удобнее.

Данная проверка для меня вовсе не обязательна именно в NotePad++, меня устроит любой способ и любая иная программа.

Благодарю.

Drongo 12-11-2011 16:37 1793629

Буквально на днях столкнулся с тем, что моя программа не открывает один файл .xml, долго искал косяк, в итоге нашёл его в самом файле .xml атрибуты не были разделены пробелами. Интересно то, что при создании создания .xml (.xml делается программой avz) ошибки не стабильны, редко, но порой появляются в самых неожиданных местах, чаще всего это отсутствие пробелов между атрибутами. Можете прикрепить примерный .xmal файл?

Trueman777 12-11-2011 16:54 1793643

Drongo в смысле, прикрепить проблемный файл, в котором я ищу ошибку?
Ну на данный момент ошибок пока, вроде бы, нет. Но я работаю над ним, экпериментирую, и пару раз замечал оплошности, например, в одном месте случайно удалил кавычки. Но я вовремя заметил и исправил.
Просто хотелось бы иметь под рукой какой-нибудь инструмент проверки, на всякий случай.

Я не понимаю, если NotePad++ умеет распознавать синтаксические ошибки (красным же он их выделяет), почему тогда нельзя было сделать инструмент поиска (точнее, быстрого перехода от ошибки к ошибке, как F3 в текстовом поиске) их по файлу... Наверняка что-то подобное должно существовать.

Drongo 12-11-2011 17:13 1793652

Trueman777, Да, любой файл, с которым вы работаете - прикрепите. А что именно вы делаете с файлом, что ищете? Опишите производимые работы с таким файлом.

Trueman777 12-11-2011 17:49 1793674

Вложений: 1
Прикрепил (в этом файле ошибок нет, это неизменённый оригинал).


Цитата:

Цитата Drongo
А что именно вы делаете с файлом, что ищете? Опишите производимые работы с таким файлом. »

Редактирую значения, заменяю параметры, добавляю/удаляю блоки и т.д.

Вообще, я уже нашёл кое-что полезное - http://www.xmlvalidation.com , но он видит только первые потерянные кавычки, а дальше, т.к. синтаксис из-за этого оказывается уже глобально нарушен, ничего не видит.

Drongo 12-11-2011 21:01 1793786

Цитата:

Цитата Trueman777
он видит только первые потерянные кавычки, а дальше, т.к. синтаксис из-за этого оказывается уже глобально нарушен, ничего не видит. »

А можно ли тогда пойти таким путём, инструмент, которым вы пользуетесь для отладки .xml файлов, вы находите первую пару пропущенных кавычек, исправляете, дальше открываете\загружаете его снова, если ошибки ещё есть, он вам покажет вторую пару пропущенных кавычек и так далее пока не будут выполнены все необходимые исправления?

P.S. Я перенесу вашу тему в раздел Хочу Всё Знать, возможно там вам что-нибудь посоветуют ещё.

Iska 13-11-2011 05:23 1793994

Trueman777, попробуйте Microsoft XML Notepad: XML Notepad 2007 Design (Download Details - Microsoft Download Center - XML Notepad 2007), хотя, на мой взгляд, сие не слишком удобно — при попытке открытия редактор просто сообщает об месте ошибки, не давая возможности её исправить:
Цитата:

Error loading: E:\Песочница\0090\WeaponInfo - original.xml

'PISTOL' is an unexpected token. The expected token is '"' or '''. Line 93, position 16.

Would you like to open it using Notepad?
Сам я предпочитаю пользовать связку редактора Far Manager (Far Manager Official Site : загрузить) + плагин Colorer (Far Manager Plugin), основанный на Colorer Library (Colorer-take5 library):



Например, я принудительно внёс «потерянные кавычки» в выложенный Вами файл, сохранил его, затем вновь открыл его в редакторе Far Manager'а:


Вызвал список плагинов и выбрал плагин Colorer:


В меню плагина выбрал показ списка ошибок:


В списке найденных ошибок выбрал первую найденную (для XML иначе и смысла нет, последующие ошибки как правило вызваны именно сбоем парсинга после первой ошибки):


Плагин переместил курсор ввода в нужное место редактора, где находится ошибка:

Trueman777 13-11-2011 20:30 1794352

Цитата:

Цитата Drongo
А можно ли тогда пойти таким путём »

Ну да, всё равно по логике вещей по-другому, наверное, и не получится ) Хотя NotePad++ всё же подсвечивает "нестыковки" (как он считает) в количестве большем, чем одна... ) Можно в пяти местах кавычки поудалять, и он все эти 5 мест красным выделит. Почему поиска-перехода по этим местам в NotePad++ не реализовали, я не понимаю >__<

Iska, замечательно, спасибо )


Время: 05:52.

Время: 05:52.
© OSzone.net 2001-