Russian Qt Forum

Qt => XML => Тема начата: EverGreen от Сентябрь 11, 2009, 18:05



Название: Перемещение по xml документу вверх
Отправлено: EverGreen от Сентябрь 11, 2009, 18:05
Здравствуйте .
Возникла следующая проблема .Есть xml документ примерно след содержания
Код:
<myprogram version = "1.0">
- <Preferences page="one">
      <first>true</first>
      <second>false</second>
      <third>true</third>
  </Preferences>
- <Preferences page="two">
     <myphotoLabel>d:\photo.png</myphotoLabel>
     <myname_edit>name</myname_edit>
  </Preferences>
</myprogram>



Время от времени нужно считывать значение из каждой секции  Preferences и что записывать в
нее.
Использую наследник класса QXmlStreamReader .В нем есть метод setSection. Сначала вызываю
его , устанавливаю нужную секцию , затем читаю нужные мне элементы .
Код:
bool XPrefReader::setSection(QString section)
{  
     while(!atEnd()){
        readNext();
        if(isStartElement()) {
            if(name()=="Preferences" && attributes().value("page") == section){
                return true;
            }
        }
      }
    return false;
}

Ecли я устанавливаю сначала первую секцию затем вторую а затем снова первую , то последняя не устанавливается  и этот метод возвращает false;
то есть парсер читает xml  файл только вниз и хранит у себя значение текущей строки .

Как можно сбросить это значение , что бы при каждом вызове метода setSection парсер работал с начала xml документа ??