Ho cercato di recuperare i valori di testo dei nodi da questo file XML:Estrazione valori di nodi figlio con QXmlItem come QXmlQuery concentrano
<!DOCTYPE structure>
<data>
<x>
<id>1</id>
<nam>tytuł</nam>
<tab>21</tab>
<ind>5</ind>
<pre>TY</pre>
<khw>C.TY</khw>
</x>
<x>
<id>2</id>
<nam>autor</nam>
<tab>21</tab>
<ind>5</ind>
<pre>FO</pre>
<khw>C.FO</khw>
</x>
<x>
<id>3</id>
<nam>hasło korporatywne</nam>
<tab>21</tab>
<ind>5</ind>
<pre>FN</pre>
<khw>C.FN</khw>
</x>
</data>
Quello che voglio fare è quello di prendere ogni nodo e per bambini e convertire a QMap. Non ho problemi con il recupero di un singolo elemento, ma quando si tratta di recuperare elementi figli impostando come risultato il risultato di QXmlQuery, il QString che valuto la query del nodo figlio è vuoto. Io uso questo pezzo di codice:
QXmlResultItems results;
QFile structure("./structure.xml"); // xml file, as described earlier
structure.open(QFile::ReadOnly);
QXmlQuery query;
query.setFocus(&structure);
query.setQuery("data/x");
query.evaluateTo(&results);
QXmlItem next = results.next();
while(!next.isNull()) {
qDebug() << next.toNodeModelIndex().stringValue(); // everything's fine. It prints contents of <x>'s child nodes
QXmlQuery childQuery;
QString r;
childQuery.setFocus(next);
childQuery.setQuery("./nam/text()"); // already tested: "/nam/text()", "/nam/string()", "x/nam/string()", "data/x/nam/string()" etc... still no luck.
childQuery.evaluateTo(&r);
qDebug() << r; // prints \n but it should print content of <nam> node.
next = results.next();
}
software che uso: Qt 4.7.2 SDK direttamente dal sito Qt, QtCreator 2.3.1 su Windows e Linux (senza alcuna differenza in questo caso particolare, i risultati sono gli stessi) . Voglio essere sicuro che sia il problema della mia mancanza di conoscenza, piuttosto che bug del software, si prega di aiutare
La cosa divertente è che funziona con" ./ id/string() "o anche con" ./name/string() "se si rinominano i tag" nam "in" name ". – alexisdm
Sembra lo stesso problema descritto qui http://qt-project.org/forums/viewthread/25725 – CAMOBAP