2016-04-12 2 views
2

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

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

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

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

+2

Вы считаете использование 'QDomDocument'? –

+0

Просто посмотрите на это прямо сейчас .... Доступна ли QDomElement и QDomDocument в Qt5.5? – SPlatten

+0

Это было бы тривиально узнать по googling «qt5 qdomdocument» ... – hyde

ответ

1

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

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

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

Смежные вопросы