Russian Qt Forum

Qt => XML => Тема начата: ivashka от Июль 09, 2011, 17:32



Название: QT QXmlQuery вернуть массив
Отправлено: ivashka от Июль 09, 2011, 17:32
Здравствуйте.
Делаю запрос, получаю данные, но при помощи evaluateTo получаю их в строку, что не удобно для работы.
Вид XML следующий:
Код:
<items>
                    <item>
                        <id>102044</id>
                        <image>parcer_13_1310215068.jpg</image>
                        <name>Harley Davidson Touring Road King</name>
                        <date>3/2006</date>
                        <price>5554</price>
                        <valuta>EUR</valuta>
                        <timeadded>1310215068</timeadded>
                    </item>
                   

                    <item>
                        <id>102041</id>
                        <image>parcer_28_1310215003.jpg</image>
                        <name>Aprilia RS 50 Motorhispania Sondermodell RACING</name>
                        <date>4/2004</date>
                        <price>1234</price>
                        <valuta>EUR</valuta>
                        <timeadded>1310215003</timeadded>
                    </item>
                   
</items>

Мне нужно получить многомерный массив, вида:
Array (
  • {
[id]=значение
[image] = значение
[name] = значение
[date] = значение
[price] = значение
[valuta] = значение
[timeadded] = значение
}
[1] {
[id]=значение
[image] = значение
[name] = значение
[date] = значение
[price] = значение
[valuta] = значение
[timeadded] = значение

и т.д.
}
)

Мой код который получает ид в строку:
 
Код:
QByteArray data = reply->readAll();
    qDebug() << data;
    QXmlQuery query;
    QString toinputxml;
    toinputxml = data;
    query.setFocus(toinputxml.toUtf8());
    query.setQuery("/items/item/id/text()");
    QString str;
    query.evaluateTo(&str);
    qDebug() << str;

Данные получаю с сервера, ид успешно матчатся, но только в строку, и только соответственно ид.

как лучше быть в моем случае, спасибо.