Problem mit XQuery

Hallo,

ich nutze für meine Anwendungen die Qt-Bibliothek (C++-Bibliothek) in seiner neusten Version 4.4. Seit Kurzem ist es dort nun auch möglich XQuery zu verwenden.

Eine praktische Funktion namens evaluateTo(QStringList *) ermöglicht es mir, alle (in meinem Fall) Texte in eine String-Liste zu schreiben, die eine Abfrage zurück gibt.

Meine Abfrage sieht dabei wiefolgt aus:
Code:
doc('D:/wrk/prog/debug/pool.xml')/Pool/Connection/Target/text()

Ich möchte also alle Texte eines Elements Target haben, die ein Kind von Connection und wiederrum Pool sind.

Die Abfrage funktioniert auch zu 100%, denn evaluateTo(...) kann auch in einen Buffer schreiben, welcher zu meinen Testzwecken ein ByteArray war. Lasse ich mir das ByteArray ausgeben, so stehen alle Textelemente von Target hintereinander geschrieben in meinem String.

Ich denke dass wenige aus der Qt-Ecke kommen werden, darum ein kleiner Auszug zu QXmlQuery aus der Dokumentation:
"The query must evaluate to a sequence of xs:string values, and this is checked by compiling the query as if it had been passed to a function accepting xs:string*."

Rein inhaltlich, ist jeder Text eines Target-Elements ein String. Jedoch mislingt mir der Versuch, ein evaluateTo(...) auf eine String-Liste zu machen.

Muss ich der Abfrage nun noch irgendwie beibringen, dass es sich bei den Texten um Strings handelt? Wenn ja wie mache ich das am geschicktesten?

Ich hoffe mir kann geholfen werden.




Mfg Tom
 
Zurück