Как получить номер строки, на которой включен элемент xml, через Java w3c dom api - PullRequest
1 голос
/ 01 мая 2010

Есть ли способ найти номер строки, в которой находится данный элемент, в XML-файле через w3c dom api?

Мой пример использования: 30 000 карт в формате kml / xml. Я написал модульный тест, который перебирает каждый файл, найденный на жестком диске (около 17 ГБ), и проверяет, что он может быть проанализирован нашим приложением. Когда это терпит неудачу, я выбрасываю исключение, которое содержит экземпляр элемента, который считался «недействительным». Чтобы наш отдел картографии (здесь никто не знает, как программировать) легко отследил опечатку, мы хотели бы записать номер строки элемента, вызвавшего исключение.

Кто-нибудь может предложить способ сделать это? Обратите внимание, что мы используем W3C dom api, включенный в Android 1.6 SDK.

Ответы [ 3 ]

1 голос
/ 01 мая 2010

Возможно, я ошибаюсь, но номер строки не должен относиться к вашему синтаксическому анализатору / считывателю XML, если сама структура XML верна.

Вы можете попытаться экстраполировать номер строки программно, исходя из предположения, что каждый узел / контент должен находиться на отдельной строке, но это будет сложно.

1 голос
/ 01 мая 2010

Я не уверен, отличается ли API Android, но обычное Java-приложение может перехватить SAXParseException при анализе и посмотреть номер строки .

0 голосов
/ 26 февраля 2014

Похоже, вы проверяете свои файлы XML.То есть вас не интересует, являются ли документы синтаксически правильными («правильно сформированными»), но допустимы ли они семантически для вашего приложения.Правильным инструментом для этого был бы проверяющий синтаксический анализатор XML в сочетании со специальной схемой XML.См., Например, это руководство по проверке XML в Java .Ошибки проверки обычно содержат подробную информацию об ошибках, включая номер строки проблемных элементов.

...