[Qt-interest] Problems with XML and XQuery

Esdras Beleza listas at esdrasbeleza.com
Sat Jul 17 20:59:14 CEST 2010


Solved. The updated code is:


    QXmlQuery query;
    query.setFocus(replyString);
    query.setQuery("lfm/artist/name/text()");

    QBuffer outb;
    outb.open(QIODevice::ReadWrite);
    QXmlSerializer s(query, &outb);
    query.evaluateTo(&s);
    qDebug() << "buffer" << outb.data();



Esdras

--
http://www.esdrasbeleza.com


On 17 July 2010 15:03, Esdras Beleza <listas at esdrasbeleza.com> wrote:

> doc($data) was wrong, since $data is not a filepath. I changed my query to
>
> query.setQuery("$data/lfm/artist/name");
>
> and now I obtaining this error:
>
> Error XPTY0019 in file:///home/esdras/dev/player/Player, at line 1, column
> 1: Required type is node(), but xs:string was found.
>
>
>
>
> Esdras
>
> --
> http://www.esdrasbeleza.com
>
>
> On 17 July 2010 14:41, Jason H <scorp1us at yahoo.com> wrote:
>
>> lfm/artist/name
>>
>> But you're getting a namespace error. hrm.
>>
>>
>>
>>
>> ------------------------------
>> *From:* Esdras Beleza <listas at esdrasbeleza.com>
>> *To:* qt-interest at trolltech.com
>> *Sent:* Sat, July 17, 2010 1:31:37 PM
>> *Subject:* [Qt-interest] Problems with XML and XQuery
>>
>> Hi folks,
>>
>> I'm trying to parse a XML tree in the format of a QString. It's the
>> response of a query to Last.fm web service described in
>> http://www.lastfm.com.br/api/show?service=267 .
>>
>> The reply is in the variable replyString.
>>
>> My code snippet is:
>>
>> ---- 8< cut here ----
>>     QXmlQuery query;
>>     query.bindVariable("data", QXmlItem(replyString));
>>     query.setQuery("doc($data)//artist/name");
>>
>>     QBuffer outb;
>>     outb.open(QIODevice::ReadWrite);
>>     QXmlSerializer s(query, &outb);
>>     query.evaluateTo(&s);
>>     qDebug() << "buffer" << outb.data();
>>
>>     QStringList *result = new QStringList();
>>     query.evaluateTo(result);
>>
>>     qDebug("num: " + QString::number(result->count()).toUtf8());
>> ---- 8< cut here ----
>>
>> I don't know if my XQuery code is right, but I'm getting this error:
>>
>> Error FODC0005 in file:///home/esdras/dev/player/Player, at line 1, column
>> 1: <?xml version="1.0" encoding="utf-8"?>
>>
>> <lfm status="ok">
>>
>> <artist>
>>
>> (...) Long XML code (...)
>>
>> </artist></lfm>
>>
>> is not a valid value of type xs:anyURI.
>>
>>
>> Please, does anyone know what I'm doing wrong? I can't find any
>> documentation about parsing XML strings using Qt.
>>
>>
>> Regards,
>>
>>
>> Esdras
>>
>> --
>> http://www.esdrasbeleza.com
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20100717/1ba87d25/attachment.html 


More information about the Qt-interest-old mailing list