Qt XML Input - PullRequest
       11

Qt XML Input

2 голосов
/ 30 марта 2009

Я пытаюсь ввести данные из файла XML в программе на C ++, используя набор инструментов Qt. Мои данные XML отформатированы следующим образом:

`<item>
    <title>title<\title>
    <tree_loc1>0<\tree_loc1>
    <parent>parent<\parent>
    <description>description<\description>
    <other_info>other info<\other_info>
    <location>location<\location>
    <last_modified>Mar 28 2009 8:16 pm<\last_modified>
    <radio>0<\radio>
 </item>`

В настоящее время функция, которую я должен прочитать в XML, выглядит следующим образом. К сожалению, он распознает данные из первого тега (заголовка) и затем возвращает все будущие попытки доступа к данным как NULL. Подкорень, который я передаю, является domDocument.documentElement (). Я новичок в XML и несколько новичок в Qt, и буду признателен за любую помощь, которую вы можете предложить в решении моей проблемы! Большое спасибо.

void XmlHandler::readXML(QStandardItemModel *model, QDomNode subRoot){
  QDomElement node;
  QString title;
  int row;
  QString parent;
  QString description;
  QString other_info;
  QString location;
  QString last_modified;
  QString radio;
  QString value;
  bool flag;

  if (subRoot.isNull())
    return; // error condition

  for (int i = 0; i < N_STRINGS; i++){
    node = subRoot.firstChildElement(tagName[i]); // returns NULL all but the 1st time
    value = DEFAULT_VALUE;

    value = node.text();
    switch (i) {
      case 0:
      title = value;
          break;
      case 1:
      row = value.toInt();
      break;
      case 2:
      parent = value;
      break;
      case 3:
      description = value;
          break;
      case 4:
      other_info = value;
      break;
      case 5:
      location = value;
      break;
      case 6:
      last_modified = value;
      break;
      case 7:
          radio = value;
      break;
      }
  }
}

1 Ответ

6 голосов
/ 30 марта 2009

Ваши данные XML не являются допустимыми XML - обратные косые черты должны быть косыми чертами. Например:

<title>title<\title>

должно быть:

<title>title</title>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...