Чтение структуры XML

Я использую Qt5.5, я хочу прочитать файл XML в память, сохраняя структуру и атрибуты узлов и отношений.

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

В конечном итоге я хочу прочитать XML в связанный список, где корневой узел совпадает с корневым узлом xml, а другие узлы являются его потомками.

После небольшого поиска я нашел QDomDocument и QDomElement, однако, чтобы использовать их, необходимо изменить файл ‘.pro’ и добавить xml в строку QT.

2

Решение

То, что вы хотите, это DOM Parser. Он предоставляет древовидную модель (Document Object Model) данных XML, которую вы можете просматривать, изменять и сохранять в файл.

QXmlStreamReader предоставляет очень простой интерфейс, похожий на SAX-парсер. Если вам просто нужно извлечь данные из текста в формате XML, этого может быть достаточно. (Для написания простого XML существует также QXmlStreamWriter).
Эти два класса включены в модуль Qt Core

Если вам нужен более мощный анализатор XML, модуль Qt XML предлагает настоящий SAX Parser (QXmlSimpleReader) и DOM Parser (QDomDocument). Вы можете активировать в проектах qmake, добавив qt += xml в профиле.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]