2014-11-11 5 views
1

Итак, у меня есть программа, которая читает большие файлы XML, содержащие несколько записей данных. Таким образом, база данных, в которой я его использую, изначально содержала 40 000 отдельных записей, написанных в XML-файле, но вы можете загрузить один XML-файл, содержащий все записи. Тем не менее, из-за этого, в декларации XML элемент: -Как бороться с [xX] [mM] [lL] в java

<?xml version="1.0" encoding="UTF-8"?> 

вызывается несколько раз по всему документу, и мне было интересно, есть ли какой-то способ борьбы с этим путем использования StAX анализатор.

Edit: следует из сказал, что я не могу должным образом разобрать через мой документ и прочитать все, как он постоянно возвращается сообщение об ошибке: -

Exception in thread "main" javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1062,6] 
Message: The processing instruction target matching "[xX][mM][lL]" is not allowed. 

из-за того, что декларация XML заявлен несколько раз. Благодаря

+2

http://stackoverflow.com/questions/19889132/xslthe-processing-instruction-target-matching-xxmmll-is-not-allowed – Stefan

+0

Это здорово, спасибо! – user2062207

+0

Просто, чтобы уточнить, я сделал метод, который выполняет итерацию через документ и пытается удалить все элементы, содержащие в нем user2062207

ответ

0

Пока вы не устранить паразитные <?xml ?> декларации (ы), вы не можете обработать файл как XML, потому что это не well-formed. Сначала рассматривайте его как текст, как вручную, так и программно, для устранения дополнительных XML-деклараций, прежде чем пытаться проанализировать его как XML.

Для получения общей информации о всех путях возникает ошибка

The processing instruction target matching "[xX][mM][lL]" is not allowed.

и средств для решения в каждом направлении, см this answer (как это было предложено Стефаном).