Разбор неправильно сформированного XML с помощью Qt

Я хотел бы использовать Qt для анализа неправильно сформированного XML-документа в форме:

<log_data>
//lots of data
</log_data>
<log_data>
//more data
</log_data>

//etc.

Возможно ли это вообще, или библиотеки синтаксического анализа Qt XML абсолютно требуют правильно сформированного XML?

Заранее спасибо.


person Brad    schedule 16.07.2012    source источник


Ответы (2)


Создайте каркас документа wrapper.xml:

<!DOCTYPE wrapper [
<!ENTITY e SYSTEM "real.xml">
]>
<wrapper>&e;</wrapper>

где real.xml — фрагмент XML, который вы действительно хотите прочитать; затем укажите парсеру XML файл wrapper.xml.

person Michael Kay    schedule 17.07.2012

Просто добавьте <root> перед ним и </root> после него, и вы получите правильный XML-документ.

person Guffa    schedule 16.07.2012
comment
К сожалению, это не вариант. Файл должен быть открыт только для чтения, а его размер не позволяет создать новую правильно сформированную версию. Хотя это тоже была моя мысль. - person Brad; 17.07.2012
comment
@Brad: Хм ... Тогда вы могли бы реализовать поток, который читает из файла и возвращает его с тегом вокруг него. - person Guffa; 17.07.2012
comment
Этот поток может быть пользовательской реализацией QIODevice, обертывающей фактический QFile. - person Frank Osterfeld; 17.07.2012