Разметка должна быть правильной - PullRequest
8 голосов
/ 23 марта 2010

Прежде всего, позвольте мне сказать, что я новичок в SAX и Java.

Я пытаюсь прочитать информацию из файла XML, который сформирован неправильно.

Когда я пытаюсь использовать SAX или DOM Parser, я получаю в ответ следующую ошибку:

The markup in the document following the root element must be well-formed.

Вот как я настроил свой XML-файл:

<format type="filename" t="13241">0;W650;004;AG-Erzgeb</format>
<format type="driver" t="123412">001;023</format>
   ...

Могу ли я заставить SAX или DOM анализировать файлы XML, даже если они не являются правильно сформированными XML?

Спасибо за вашу помощь. Очень признателен. Haythem

Ответы [ 3 ]

20 голосов
/ 23 марта 2010

Лучше всего сделать XML правильно сформированным, возможно, предварительно немного его обработав. В этом случае вы можете добиться этого, просто поместив объявление XML (и даже это не обязательно) и предоставив корневой элемент (который не является обязательным), например:

<?xml version="1.0"?>
<wrapper>
    <format type="filename" t="13241">0;W650;004;AG-Erzgeb</format>
    <format type="driver" t="123412">001;023</format>
</wrapper>

Там я произвольно выбрал имя «обертка» для корневого элемента; это может быть что угодно.

1 голос
/ 23 марта 2010

Подсказка: используя sax или stax, вы можете успешно проанализировать не правильно сформированный XML-документ, пока не встретится ошибка FIRST"правильно сформированный".

(я знаю, что это не слишком помогает ...)

0 голосов
/ 23 марта 2010

Поскольку DOM будет сканировать ваш XML-файл, а затем построить дерево, корневой узел дерева будет похож на ответ 1. Однако, если парсер не может найти или даже, он может даже построить дерево. Таким образом, лучше выполнить некоторую предварительную обработку файла XML, прежде чем анализировать его с помощью DOM или Sax.

...