Нахождение точного местоположения элемента в XML-документе - PullRequest
1 голос
/ 21 сентября 2011

Я ищу способ найти точное местоположение элемента в XML-документе. Я анализирую свой документ с помощью XOM и обрабатываю его обычным способом. Хитрость в том, что в XML-документе встроены некоторые сценарии (только текстовые узлы), и в случае сбоя сценариев (синтаксический анализ, логика и т. Д.) Я хочу сообщить пользователю (который пишет эти сценарии) точный номер строки скрипт был объявлен.

Самый идеальный способ - что-то вроде этого:

int scriptLine = someElement.getFirstChildElement("script").getDeclaringLineNumber();

К сожалению, я не смог найти способ сделать это, с XOM или без. Если у кого-то есть идеи или они уже сделали что-то подобное, я мог бы помочь. : -)

1 Ответ

1 голос
/ 21 сентября 2011

Путь назад я сделал это с JDOM.Расширяя SAXBuilder и перехватывая обратный вызов startElement () и endElement (), можно обновить специализированные реализации Element с помощью информации о номере строки с использованием SAX Locator.Код все еще должен быть рядом .... да здесь:

http://jdom.org/dist/binary/jdom-contrib-1.1.1.zip

Поиск LineNumberSAXBuilder в каталоге src.

Я считаю, что XOM имеет NodeFactory, который можетбыть продлен таким же образом.

...