Skip to content

KotDath2/qt_xml

Repository files navigation

Домашнее задание № 2. Использование XML и модели-представления Qt

Разработать программу, производящую отображение XML-файлов в виде иерархической таблицы.

Основные требования:

  1. xml-Файлы данных брать с Портала открытых данных Правительства Москвы (http://data.mos.ru). Скачать не менее четырех xml-файлов, например, данные по кафе, кофейням, барам и предприятиям быстрого обслуживания.

  2. Программа должна предоставлять меню (QMenu), содержащее следующие пункты:

    • Файл:
      • Открыть (загрузка xml-файла данных)
      • Закрыть все (Очистить область вывода данных)
      • Выход (Закрыть программу)
  3. Для открытия файлов использовать стандартное диалоговое окно выбора файлов (QFileDialog).

  4. Парсинг xml-файла должен осуществляться в классе модели, унаследованном от QAbstractItemModel или производного от него. Предоставить конструктор, принимающий имя xml-файла. Для парсинга использовать DOM или SAX.

  5. Данные xml-файла должны добавляться в QTreeView, элементами которого являются подтаблицы.

  6. Полагать, что структура файла известна и информация в дереве может отличаться от точной структуры xml-файла.

  7. Отображение данных должно быть примерно в следующем формате:

  • Имя открытого файла без полного пути (например, cafe.xml)
    • Название организации 1

      Наименование Значение
      Административный округ ...
      Район ...
      Адрес ...
      Телефон ...
      Кол-во посадочных мест ...
      Геоданные ...
    • Название организации 2

      Наименование Значение
      Административный округ ...
      Район ...
      Адрес ...
      Телефон ...
      Кол-во посадочных мест ...
      Геоданные ...
  • Имя открытого файла без полного пути
    • Название организации 1 ...
  1. Реализовать контекстное меню для корневого элемента (т.е. "Имя открытого файла без полного пути") с полем "Сделать файл активным". Текст активного узла сделать жирным. По умолчанию активным считать первый открытый файл. Для дочерних узлов меню срабатывать не должно.
  2. Предусмотреть поле ввода XQuery-запросов и кнопку «Выполнить». Запрос выполнять к активному файлу.
  3. Предоставить возможность загрузить запрос в поле из xq-файла (через кнопку «Загрузить» и стандартный диалог выбора файла QFileDialog).
  4. Результаты выполнения запросов выводить в отдельном окне с аналогичной древовидной структурой.
  5. Ошибки парсинга обрабатывать выводом окна критических сообщений.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published